我建立了一个小的搜索表单,帮助我从db
中搜索jobsTablejobs表有jobTitle,jobCompany,jobGovernorate,jobLocation和created_at列
并从搜索表单发布数据:
{" JOBTITLE":"设计师"" jobCompany":空," jobGovernorate":空," jobLocation&# 34;:空," postingDate":"广告"}
我的意思是一些输入可能为null,所以如何为输入编写动态where子句有价值,我希望搜索引擎能够通过JobTitle,JobCompany或所有输入进行搜索(如果有值)。
提示:字段名称和表格列名相同
如果有办法从我的数据库中检索作业,如
DB::table('jobs')->where($request->all())
抱歉英语不好,我不知道如何解释我的问题
答案 0 :(得分:2)
我更喜欢定义所有搜索字段。
$searchFields = ['jobTitle','jobCompany','jobGovernorate','jobLocation','postingDate'];
$jobQuery = DB::table('jobs');
foreach ($searchFields as $field) {
if ($request->has($field)) {
$jobQuery->where($field, $request->input($field));
}
}
$results = $jobQuery->get();
答案 1 :(得分:0)
你必须对查询进行编码,我的意思是,你在寻找什么?
之类的东西DB::table('jobs')->where([
['jobTitle', 'like', $request->jobTitle . '%'],
['jobCompany', 'like', $request->jobCompany . '%']])->get();