[英]Laravel scout lazy loading
目前我正在使用 Laravel scout 来搜索我的整个网站。 因此,当有人搜索消息时,我会返回:
public function messages($search)
{
return Message::search($search)->paginate(4);
}
但现在我必须发送相关的论坛aswel。 已经试过这个:
public function messages($search)
{
return Message::search($search)->load('forum')->paginate(4);
}
那行不通。 我怎么能这样做?
我现在只能给你这个解决方法。 您可以手动加载论坛数据:
$messages = Message::search($search)->paginate(4);
$forums = Forum::whereIn('id', $messages->pluck('id'))->get();
return compact('messages', 'forums'); // Return an array of messages and related forums.
解决方案:
$message = Message::search($query)->paginate(25);
// while this returns a Collection, it also updates the $message Paginator.
$message->load('forum');
$message
现在将是结果。
您可以在分页器上获取数据……更多详情请点击此处。 https://gist.github.com/Artistan/fea3e21f149fdf845e530299bcff37d4
我正在将 Laravel Scout 与 tntsearch 一起使用,这就是我解决问题的方式。
$ids = Message::search($search)->keys()->toArray();
$messages = Message::with('forum')->whereIn('id', $ids)->get();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.