我有一个关于laravel模型关系的问题,并在雄辩的类中使用它们。我的问题是:
我有一个这样的模型:
class TransferFormsContent extends Model
{
public function transferForm()
{
return $this->belongsTo('App\TransfersForms','form_id');
}
}
并且在transferForm中我有这样的关系的另一面:
public function transferFormsContent()
{
return $this->hasMany('App\TransferFormsContent', 'form_id', 'id');
}
同样在transferForm我和员工有另一种关系:
class TransfersForms extends Model
{
public function employee()
{
return $this->belongsTo('App\User','employee_id');
}
}
现在,如果我想从" TransferFormsContent"用它的" transferForm"提供给员工。我怎么能这样做?
我现在如果我想得到" TransferFormsContent"只有" transferForm"我可以用这个:
$row = $this->model
->with('transferForm');
但是如果我想让transferForm也与其员工一起呢?
答案 0 :(得分:2)
只有你能做到这一点:
$row = $this->model
->with('transferForm.employee')
现在你有来自" TransferFormsContent"的记录。用它的" transferForm"提供给员工。
答案 1 :(得分:1)
您可以使用带点符号的嵌套预先加载:
$row = $this->model
->with('transferForm.employee');
或者您可以使用闭包:
$row->$this->model
->with(['transferForm' => function($q) {
$q->with('employee')
}]);
当您需要按员工排序或过滤
时,第二种方法很有用