Laravel 与多个列有很多关联

man*_*med 5 php laravel eloquent laravel-4 laravel-5

我有两个型号

model_1
model_2
Run Code Online (Sandbox Code Playgroud)

model_1有很多model_2

现在我想将 model_1 hasMany model_2 与多列匹配关联。

让我在原始查询中举一个例子

select ...... from model_1 left join model_2 ON (model_1.f1 = model_2.f1 AND model_1.f2 = model_2.f2)
Run Code Online (Sandbox Code Playgroud)

我怎样才能在hasMany协会中做到这一点

小智 3

我通过添加一个附加参数来加入模型来使其工作:

public function my_joined_columns($mySecondJoinColumnValue)
    {
        return $this->hasMany('NamespaceToOtherModel', 'myIdColumn')
           ->where('my_second_join_column', $mySecondJoinColumnValue);
    }
Run Code Online (Sandbox Code Playgroud)

然后我确保传递参数:

MyModel1::find(1)->my_joined_columns(2)->get()
Run Code Online (Sandbox Code Playgroud)