扩展推荐:Cross-Eloquent Search 跨多个 Eloquent 模型进行搜索
Laravel Cross-Eloquent Search 是一个用于搜索多个 Eloquent 模型的扩展包。 支持排序、分页、范围查询、预先加载关系以及搜索单列或多列:
// Returns \Illuminate\Database\Eloquent\Collection
Search::new()
->add(Post::class, 'title')
->add(Video::class, 'title')
->get('howto');
// 一次添加多个模型
Search::addMany([
[Post::class, 'title'],
[Video::class, 'title'],
])->get('howto');
通常,你会想要对结果进行分页,这个扩展包可以轻而易举的做到:
Search::add(Post::class, 'title')
->add(Video::class, 'title')
->paginate()
// or
->paginate(perPage: 15, pageName: 'page', page: = 1)
->get('build');
更多扩展包信息,请查看相关文档 Readme :
- 搜索一个或多个 Eloquent 模型
- 支持跨模型分页
- 搜索单列或多列
- 按(跨模型)列或按相关性排序
- 使用约束和范围查询
- 每个模型的预加载关系
- 对组合结果进行数据库内排序
- 零第三方依赖
你可以在 Github 上了解更多关于这个包的信息,获得完整的安装说明并查看源代码。这个包的作者还写了一篇博文其中详细介绍了关于使用这个包。
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
不错 :+1: