2 php eager-loading laravel laravel-5.3
我有工作职能,但是,我想限制每位顾问返回的治疗数量。
工作示例:
Clinic::where('user_id', Auth::id())
->with('consultants.specialism', 'consultants.treatments')
->first();
Run Code Online (Sandbox Code Playgroud)
建议的(但不起作用)示例:
Clinic::where('user_id', Auth::id())
->with('consultants.specialism')
->with(['consultants.treatments' => function ($query) {
$query->take(3);
}])
->first();
Run Code Online (Sandbox Code Playgroud)
不幸的是,takeorlimit函数将其限制为返回的处理总数。
我希望将每位顾问的治疗次数限制为最多 3 次,而不是总数。
请问我怎样才能实现这个目标?
Laravel 中没有对此的原生支持。
我为其创建了一个包:https ://github.com/staudenmeir/eloquent-eager-limit
HasEagerLimit在父模型和相关模型中使用该特征。
class Consultant extends Model {
use \Staudenmeir\EloquentEagerLimit\HasEagerLimit;
}
class Treatment extends Model {
use \Staudenmeir\EloquentEagerLimit\HasEagerLimit;
}
Run Code Online (Sandbox Code Playgroud)
然后简单地链接->take(3)调用您的急切加载查询(似乎您已经这样做了)。
| 归档时间: |
|
| 查看次数: |
1231 次 |
| 最近记录: |