搜索栏的多个字段不起作用

时间:2021-01-18 19:56:39

标签: php laravel

我有一个包含 3 种类型输入的搜索栏,如果存在符合这些条件的数据,我想搜索我的数据库。

这是我的搜索栏的 html 代码:

$query->whereJsonContains('age', [31])

进入我的控制器:

   <form method="GET" action="{{ route('admin.liste.article.accueil.article') }}" class="mt-4 background_form">
       <div class="form-row justify-content-center">
          <div class="form-group col-md-4">
              <label for="inputCity">Rechercher par ...</label>
              <input class="form-control" name="rechercher" type="text" aria-label="Search" value="{{ request()->query('recherche') }}">
          </div>
          <div class="form-group col-md-2">
              <label for="inputState">Type article</label>
              <select id="inputState" class="form-control" name="type_article">
                  <option></option>
                  @foreach ($type_articles as $type_article)                  
                    <option value="{{ $type_article->type_article_id }}">{{ $type_article->libelle }}</option>
                   @endforeach
                </select>
           </div>
           <div class="form-group col-md-3">
               <label for="datePublication">Date de publicaton</label>
               <input class="form-control" type="text" placeholder="Exemple : 2021-02-29" name="date" value="{{ request()->query('date') }}">
           </div>
           <div class=" col-md-2 align-self-center mt-3">
              <button type="submit" class="form-control btn-sm btn-custom mb-2">Trouver</button>
            </div>
           </div>
     </form>

在我看来,我认为:

    public function accueil_article(Request $request)
    {
      $rechercher_par_accueil = $request->query('rechercher');
      $type_article_rechercher_accueil = $request->query('type_article');
      $date_publication_recherche_accueil = $request->query('date');
      if($rechercher_par_accueil || $type_article_rechercher_accueil || $date_publication_recherche_accueil){
          $article_rechercher = Article::where('titre', 'like', "%{$rechercher_par_accueil}%")
            ->when(request()->query('type_article_recherche'), function($query) {
                $query->where('type_article_id', 'like', "%{$type_article_rechercher_accueil}%");
            })
            ->when(request()->query('date_publication_recherche'), function($query) {
                $query->where('created_at', 'like', "%{$date_publication_recherche_accueil}%");
            })
            ->simplePaginate(5);         
      } else {
        $article_rechercher =  Article::orderBy('created_at','desc')->paginate(5);
      }
      return view('admin/article/admin_liste_article', [
        'articles' => $article_rechercher,
        'type_articles' => Type_article::all(),
        'themes' => Theme::all()
       ]);
}

诚挚的

1 个答案:

答案 0 :(得分:0)

试试:

$query->whereIn('type_article_id', [$type_article_rechercher_accueil]);
相关问题