繁体   English   中英

Laravel Scout 懒加载

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM