![](/img/trans.png)
[英]How to use array with LIKE with whereIn to retrieve eloquent rows in Laravel
[英]How to retrieve ONLY pivot rows with Laravel Eloquent?
我有三个模型和相关表:
每次约会都可能有很多疗法(按摩、初诊、跑步等)。
通过搜索表格,我需要检索 - 例如 - 在所有约会中完成的所有按摩疗法,也就是说,我需要通过约会_治疗表进行循环。
我试过了:
Appointment::with(['therapies' => function ($sub) use ($request) {
$sub->where('therapy_id', $request->therapy_id);
}]) ->get();
通过这个查询,我得到了所有的约会和所有的治疗作为孩子。
结果,我无法循环治疗; 我希望是这样的:
我已经编辑了 whereHas to with,这更正确。
pluck 方法可以返回治疗,您还应该预先加载治疗以避免运行重复查询。
$appointments = Appointment::whereHas('therapies', function ($sub) use ($request) {
$sub->where('therapy_id', $request->therapy_id);
})->with('therapies')->get();
$therapies = $appointments->pluck('therapy');
治疗变量将是附加到第一个查询返回的约会的所有治疗的集合。
如果您需要返回的集合仍然具有预约信息,请将您的查询改为基于治疗并急切加载相关预约
Therapy::where('id', $request->therapy_id)->with('appointments');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.