您好我在laravel框架中实现了多态关系 目前我有2个型号 CreditLog和用户
Creditlog具有可输出属性,可供用户模型
class CreditLog extends Model
{
...
public function sourceable()
{
return $this->morphTo();
}
...
}
然后在用户中我有这样的关系
class User extends Authenticatable
{
public function creditLogs()
{
return $this->morphMany('App\Models\CreditLog', 'sourceable');
}
}
然后在某些控制器中我需要获得用户信用记录
$user = User::find($id);
$CreditLogs = $user->creditLogs;
我可以在creditLogs方法中添加参数,我的意思是可以laravel morphMany添加这样的参数
$CreditLogs = $user->creditLogs
->where('created_at', '>=', $inputReq['start'])
->where('created_at', '<=', $inputReq['end']);
感谢您回答问题
答案 0 :(得分:1)
您可以将load()
方法与lazy eager loading一起使用。
$user->load(['creditLogs' => function ($query) use($inputReq) {
$query->where('created_at', '>=', $inputReq['start'])
->where('created_at', '<=', $$inputReq['end']);
}]);
或使用with()
methid与Constraing eager loading