在这种情况下,laravel有很多很多关系

时间:2014-07-20 21:43:09

标签: php laravel laravel-4

我已经查看了这个官方示例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真的应该具有不是吗?

1 个答案:

答案 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模型。它只是一张表格,用于映射您创建的多对多关系。