Laravel-使用网址

时间:2018-09-02 13:51:35

标签: php laravel laravel-5

我有一个简单的问题,我一直在使用django,现在我搬到了laravel,在这里呆了2天

我在索引页面上有表单,该表单会将输入发送到求职页面

我曾经在django中做过这样的事,但是在这里它不起作用

public function job_search(Request $request) {
    $keyword = $request->get('keywords');
    $location = $request->get('location');

    if ($keyword) {
        $jobs = Job::where('name', 'like', '%'.$keyword.'%');

        if ($location) {
            $jobs = Job::where('location', 'like', '%'.$location.'%')->where('name', 'like', '%'.$keyword.'%');
        }

    }

    if ($location) {
        $jobs = Job::where('location', 'like', '%'.$location.'%');
    }

    return view('jobs.job_search', compact('jobs','keyword','location'));
}

3 个答案:

答案 0 :(得分:2)

您遇到的问题是最后没有添加->get()。您只是在构建查询。考虑到这一点,您的代码应为:

$jobs = Job::where('location', 'like', '%'.$location.'%')->get();

答案 1 :(得分:1)

如果同时存在关键字和位置,则您将覆盖工作结果。尝试这样

public function job_search(Request $request) {
$keyword = $request->keywords;
$location = $request->location;
$q = new Job;
if ($keyword) {
    $q->where('name', 'like', '%'.$keyword.'%');
}
if ($location) {
    $q->where('location', 'like', '%'.$location.'%');
}
$jobs = $q->get();
return view('jobs.job_search', compact('jobs','keyword','location'));
}

答案 2 :(得分:1)

对于 get(),您检索所有适合where子句的行。 (请注意,访问所有行都需要循环,否则会出现一些错误)。 如果您在where子句中查找特定数据: Model :: where('field','=','value')-> get();
您没有使用-> get()

  public function job_search(Request $request) {
        $keyword = $request->get('keywords');
        $location = $request->get('location');

        if ($keyword) {
            $jobs = Job::where('name', 'like', '%'.$keyword.'%')->get();

            if ($location) {
                $jobs = Job::where('location', 'like', '%'.$location.'%')->where('name', 'like', '%'.$keyword.'%')->get();
            }

        }

        if ($location) {
            $jobs = Job::where('location', 'like', '%'.$location.'%')->get();
        }

        return view('jobs.job_search', compact('jobs','keyword','location'));
    }