Laravel:搜索查询

时间:2018-06-11 07:46:05

标签: laravel laravel-5.5

这是我在多个表中获取数据的查询。

查询:

$userPostDetails = Post::with(['product','postattribute.attribute.category','user.userDetails'])
                    ->orderBy('id','desc')
                    ->get();

根据我的查询返回所有数据。

现在我想要的是我在查询中的所有表中搜索<​​/ p>

[Post,Products,post_attributes,attrbute,category,users,userdetails]

所以如果在我的搜索参数中,如果我有

的搜索参数

categroyTitle

它将返回搜索详细信息。如果NULL返回全部。

我要搜索的所有表格相同:

如果我想在posts表中搜索Active发布我尝试过的内容

if(isset($any_or_active)) {
   $is_any_active = $any_or_active;
 } 

并在上面的查询中添加此内容 ->whereIn('demand_or_supply', $is_demand_supply)

但是如果

$is_demand_supplyNULL

我该怎么做?

1 个答案:

答案 0 :(得分:0)

我认为使用Laravel Searchable(沙发口才)会有所帮助。

运行 作曲家需要沙发/口才

在每个模型中 例如

use Sofa\Eloquence\Eloquence;
protected $searchableColumns = [
   'country.name'(relation) => 20 (weight),
   'user.email' => 10,
   'user.name' => 25,
   'user.type' => 5,
   'gender' (attribute) => 10 (weight),
   'nationality' => 2,
];

这是github上这个包的链接 https://github.com/jarektkaczyk/eloquence

从其网站上,这是一个详细的解释 https://softonsofa.com/laravel-searchable-the-best-package-for-eloquent/

希望它有所帮助。