class Book < ActiveRecord::Base
has_one :distributor
end
class Distributor < ActiveRecord::Base
belongs_to :book
has_many :agents
end
class Agent < ActiveRecord::Base
belongs_to :distributor
has_many :shops
end
class Shop < ActiveRecord::Base
belongs_to :agent
end
#Schema - http://pastie.org/426261
def test_should_load_all_shops
shop_1= Shop.create!
shop_2= Shop.create!
book= Book.create!(:distributor => Distributor.create!(:agents=> [Agent.create!(:shops => [shop_1, shop_2])]))
loaded_version = Book.find(book.id, :include => [:distributor => {:agents => :shops}], :order => 'shops.id')
assert(loaded_version.distributor.agents.first.shops.size == 2)
#THIS ASSERTION FAILS WITH SHOPS.SIZE BEING 1, INSTEAD OF 2
end
分享到:
相关推荐
`HAS_ONE`(有一个)是`HAS_MANY`的特殊情况,表示一个模型最多有一个相关模型。例如,`User`模型可能只有一个`Profile`: ```php 'profile' => array(self::HAS_ONE, 'Profile', 'user_id') ``` 最后,`MANY_MANY...
.HasOne(c => c.Parent) .WithMany(c => c.Children) .HasForeignKey(c => c.ParentId); } } public List<Category> GetSubCategories(int parentId) { using var context = new CategoryContext(); return ...
在Laravel中,你可以通过定义一个方法并返回`BelongsTo`或`HasOne`实例来建立这种关系。例如,一个`User`模型可能有一个`Profile`模型,可以定义`profile()`方法来获取或设置关联。 4. 一对多关系(One-to-Many):...
has_one :profile end ``` 然后,你可以使用这个资源来处理请求,例如创建一个新的用户: ```ruby class UsersController include JSONAPI::ActsAsResourceController def create # ... 业务逻辑 ... end ...
1. **一对一(One to One)**:在模型中定义一个`hasOne`或`belongsTo`方法,通过`_id`字段进行关联。 2. **一对多(One to Many)**:使用`hasMany`和` belongsTo`方法。在子模型上定义`belongsTo`,在父模型上...
在Laravel中,我们可以通过定义`Illuminate\Database\Eloquent\Relations\BelongsTo`或`Illuminate\Database\Eloquent\Relations\HasOne`关系,并将`morphTo`或`morphOne`作为其类型来实现嵌入。这样,我们可以在...
has_one :profile } ``` 在这个例子中,`UserSerializer`会包含`name`、`email`和`created_at`属性,同时还会包含一个名为`profile`的一对一关联模型。 AMS也支持条件性序列化,例如基于用户权限的动态属性显示。...
3. **关系(Relationships)**: Eloquent支持多种类型的关系,包括一对一(hasOne)、一对多(hasMany)、多对多(belongsToMany)、多态关系(morphTo、morphOne、morphMany)等。通过定义这些方法,可以在模型之间...
1. 数据表关联:介绍如何定义一对一、一对多、多对多关联,以及如何使用BelongsTo、HasOne、hasMany和hasAndBelongsToMany等关联类型。 2. ORM(对象关系映射):探讨ActiveRecord模式,理解查询构造器(Query ...
这段代码定义了一个`hasOne`关联,表示`Post`模型与`Category`模型之间的一对一关系,`'id'`是`Category`表的主键,`'cate_id'`是`Post`表的外键。 接下来,我们可以在`Post`模型类中添加一个静态方法`...
**解析**:这句话通过嵌套从句的方式构建了一个复杂的句子结构,强调了通过考察欧洲国家青年队来观察某种现象的强化效果。这种结构在学术或正式写作中很常见,旨在提供更具体、详细的背景信息。 --- ##### 2. 多重...
O:27:"think\model\relation\HasOne":3:{s:11:"\0*\0bindAttr";a:1:{s:9:"_wh1t3p1g";s:4:"test";}s:15:"\0*\0selfRelation";b:0;s:8:"\0*\0query";O:14:"think\db\Query":1:{s:8:"\0*\0model";O:20:"think\console\...