如何在laravel检查请求是否来?

问题描述 投票:2回答:2

如果请求得到,我想获得$data['student'](如:URL中的student-guardian?reg_no = 0001)。如果没有任何关于url $data['student']的参数不需要。

我的StudentGuardian功能像:

public function studentGuardian(Request $request)
{
    $data = [];
    if(!empty($request)){
        $data['student'] = Student::select('id','reg_no','reg_date', 'first_name', 'middle_name', 'last_name','faculty', 'semester','status')
            ->where(function ($query) use ($request) {

                if ($request->has('reg_no')) {
                    $query->where('students.reg_no', 'like', '%'.$request->reg_no.'%');
                    $this->filter_query['students.reg_no'] = $request->reg_no;
                }

            })
            ->get();
    }

    return view(('studentguardian.index'), compact('data'));
}
laravel request
2个回答
2
投票

这就是你需要的:

public function studentGuardian(Request $request)
{
    $data = [];

    // check request has any parameter
    if($request->all()){

        // query and get list student
        $data['student'] = Student::select('id','reg_no','reg_date', 'first_name', 'middle_name', 'last_name','faculty', 'semester','status')
        ->where(function ($query) use ($request) {
             if ($request->has('reg_no')) {
                 $query->where('students.reg_no', 'like', '%'.$request->reg_no.'%');
                 $this->filter_query['students.reg_no'] = $request->reg_no;
             }
        })
        ->get();

    } else {
        //do something else
    }

    // return data to view
    return view('studentguardian.index', compact('data'));
}

1
投票

首先,你的if(!empty($request))是无用的,$request总是一个Request对象,而不是空的。

其次,您可以使用if($request->all()) { ... }来检查请求数组是否为空。

© www.soinside.com 2019 - 2024. All rights reserved.