php - 搜索栏的多个字段不起作用
问题描述
我有一个包含 3 种输入类型的搜索栏,如果存在符合这些条件的数据,我想搜索我的数据库。
这是我的搜索栏的 html 代码:
<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()
]);
}
在我看来,我有:
{!! $articles->appends(['rechercher' => request()->query('rechercher'), 'type_article' => request()->query('type_article'), 'date' => request()->query('date')])->links() !!}
亲切地
解决方案
尝试:
$query->whereIn('type_article_id', [$type_article_rechercher_accueil]);
推荐阅读
- jquery - 如何在 div 和 UL 上给出 tabindex?
- javascript - 如何为 0.01 - 8.50 之间的数字范围生成正则表达式
- javascript - 在 vuex + Firebase 应用程序中使用重定向方法获取登录结果
- javascript - 如何修复我的 EJS 引用错误:未定义朋友(变量)?
- c# - 我在gridview 中有3 个文本框。当值输入到第一个和第二个文本框时,我想自动将结果写入第三个文本框
- spring-mvc - Dispatcher servlet 阻止上传的附件
- javascript - 使用 jQuery 触发 CSS 摇动动画,每隔一段时间都有效……为什么?
- android - 无法在我的 Android 应用程序中获取我的库的传递依赖项
- java - 卡夫卡不断重新平衡消费者
- google-cloud-platform - 如何使用谷歌云存储客户端获取谷歌云存储桶的元数据