我已经查看了这个官方示例http://laravel.com/docs/eloquent#many-to-many-polymorphic-relations
但我仍然感到困惑,因为我可能有不同的情况。
我有DetailsAttribute
模型处理details_attribute
表。
我有一个Action
模型女巫处理action
表。
他们之间的关系很多很多。
因此,我使用模型details_attribute_action
DetailsAttributeAction
我的DetailsAttribute
模型应该有:
public function actions(){}
我的Actions
模型应该有:
public function detailsAttributes(){}
我的DetailsAttributeAction
模型应该有功能,但我不知道它们是什么。
我的问题是先前函数中的代码是什么?并且DetailsAttributeAction
真的应该具有不是吗?
答案 0 :(得分:0)
您正在寻找的是多对多关系,而不是多态关系。
http://laravel.com/docs/eloquent#many-to-many
您的代码应如下所示:
class DetailsAttribute extends Eloquent {
// ...
public function actions()
{
// Replace action_id and details_attribute_id with the proper
// column names in the details_attribute_action table
return $this->belongsToMany('Action', 'details_attribute_action', 'details_attribute_id', 'action_id');
}
}
class Action extends Eloquent {
// ...
public function detailsAttributes()
{
return $this->belongsToMany('DetailsAttribute', 'details_attribute_action', 'action_id', 'details_attribute_id');
}
}
您不必担心如何在Laravel中创建DetailsAttributeAction模型。它只是一张表格,用于映射您创建的多对多关系。