![](/img/trans.png)
[英]How to make a union query using Laravel Eloquent and Laravel Query Builder?
[英]How to make a whereIn query builder in Laravel Eloquent with empty parameter
我在Laravel Eloquent中進行了查詢以在表中進行搜索。
public function searchContest($search){
$category = [];
$area = [];
if(isset($search['area'])){
$area = $search['area'];
}
if(isset($search['category'])){
$category = $search['category'];
}
$qry = self::whereIn('area',$area)
->whereIn('category', $category)
->get();
var_dump($query);
return;
}
但有時, area
或category
為空,而whereIn
不能使用。 我無法在網絡上找到任何有效的解決方案。 我該如何查詢?
或者您可以利用此處的條件條款
DB::table('table_name')
->when(!empty($category), function ($query) use ($category) {
return $query->whereIn('category', $category);
})
->when(!empty($area), function ($query) use ($area) {
return $query->whereIn('area', $area);
})
->get();
$q = self::query();
if (isset($search['area'])) {
$q->whereIn('area', $search['area']);
}
if (isset($search['category'])) {
$q->whereIn('category', $search['category']);
}
$qry = $q->get();
您可以在實體內部使用查詢范圍
public function scopeArea($query, $ids)
{
if (! $ids) {
return ;
}
return $query->whereIn('area', $ids);
}
public function scopeCategory($query, $ids)
{
if (! $ids) {
return ;
}
return $query->whereIn('category', $ids);
}
現在您可以建立查詢
$entity
->area($area)
->category($category)
->get();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.