Laravel 5.4 where子句如果$ request-> jobTitle!null?

时间:2017-03-19 17:28:08

标签: php laravel dynamic where clause

我建立了一个小的搜索表单,帮助我从db

中搜索jobsTable

jobs表有jobTitle,jobCompany,jobGovernorate,jobLocation和created_at列

并从搜索表单发布数据:

{" JOBTITLE":"设计师"" jobCompany":空," jobGovernorate":空," jobLocation&# 34;:空," postingDate":"广告"}

我的意思是一些输入可能为null,所以如何为输入编写动态where子句有价值,我希望搜索引擎能够通过JobTitle,JobCompany或所有输入进行搜索(如果有值)。

提示:字段名称和表格列名相同

如果有办法从我的数据库中检索作业,如

DB::table('jobs')->where($request->all())

抱歉英语不好,我不知道如何解释我的问题

2 个答案:

答案 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();