Mar*_*ues 4 php relationship polymorphic-associations laravel eloquent
我使用Laravel并不是新手,但这是我第一次需要/想要使用多态关系.我在Laravel.com上看到了一个例子,它说我应该将' imageable_id '用于一个名为'images'的表,在另一个例子中我看到'commentable_id'到表'comments'.
是否有创建名称的规则?
例如:我想创建一个表'类别',用于'帖子'和'设置'.在这种情况下,我应该使用'categoryable_id'作为名称吗?
除默认约定外,没有规则.默认情况下,您定义前缀,Laravel将设置_id和_type后缀.该字段由您在关系中定义的内容决定:
例如,在帖子或设置上:
public function category()
{
return $this->morphMany('App\Category', 'categoryable');
}
Run Code Online (Sandbox Code Playgroud)
这样,您的模型将在category Category中搜索categoryable_id和categoryable_type.categoryable_id默认情况下将匹配您的模型ID,categoryable_type将匹配您的模型的FQCN(例如'App\Post').
如果您希望更改Laravel设置多态列名称的方式,可以使用相同方法的第3和第4个参数设置它们,例如:
public function category()
{
return $this->morphMany('App\Category', 'categoryable', 'model_type', 'model_id');
}
Run Code Online (Sandbox Code Playgroud)
所以没有真正的规则.您可以根据需要自由定义它,或使用默认约定.
资料来源:http://laravel.com/docs/5.1/eloquent-relationships#many-to-many-polymorphic-relations
| 归档时间: |
|
| 查看次数: |
2662 次 |
| 最近记录: |