Php Laravel 5.5搜索多个实体

Php Laravel 5.5搜索多个实体,php,mysql,laravel,Php,Mysql,Laravel,我有一个Laravel 5.5项目。该项目的想法在于制作一个搜索页面,以查找有关第二次世界大战的信息。我有士兵、历史文件和战斗的数据 搜索页面的想法是输入一个单词或一组单词(如谷歌),并在一个查询中过滤士兵、文档和战斗人员的姓名 我一直在调查,但我所发现的只是从一个实体进行搜索,我需要搜索三个实体 我看过Laravel的官方文档,但似乎对一个实体有效 我的数据库是关系型MySQL。有什么方法可以解决这个问题吗?没有首选的方法在所有模型中进行搜索,但是如果您想在多个模型上进行搜索,那么您必须创建一

我有一个Laravel 5.5项目。该项目的想法在于制作一个搜索页面,以查找有关第二次世界大战的信息。我有士兵、历史文件和战斗的数据

搜索页面的想法是输入一个单词或一组单词(如谷歌),并在一个查询中过滤士兵、文档和战斗人员的姓名

我一直在调查,但我所发现的只是从一个实体进行搜索,我需要搜索三个实体

我看过Laravel的官方文档,但似乎对一个实体有效


我的数据库是关系型MySQL。有什么方法可以解决这个问题吗?

没有首选的方法在所有模型中进行搜索,但是如果您想在多个模型上进行搜索,那么您必须创建一个
搜索
表,该表将存储所有记录的标题或您想搜索的其他列,并将其作为多态关系进行搜索用于链接其他模型,然后可以通过关系获取结果。
例如:

后模型:

public function search(){
     $this->morphMany(Search::class,'searchable');
}
搜索模型:

public function searchable()
{
    return $this->morphTo();
}
然后对搜索模型进行搜索,并获取如下结果

$search->search('search text here')->map(function($data){
   return $data->searchable; // Fetch post
});

如果您准备好将Elasticsearch添加到您的项目中,您可以使用我的软件包进行此操作

您所说的“实体”是什么意思?我建议您使用
全文搜索
entity=>model您研究过elasticsearch吗?当实体发生变化时,您可以将它们存储在ES和重新索引数据中…我知道这并不简单。。。