首页 > 解决方案 > Laravel 关闭请求

问题描述

Assalamualaikum 伙计们,我的代码有一些问题。我试图通过在 laravel 上使用请求参数进行搜索。这是我的代码视图。

$maintenance->with([
          'user_post' => function($query, Request $request){
                if($request->has('searchBy') && $request->has('searchQuery'))
                {
                    $parse_query = explode('.',$request->query('searchBy'));
                    $is_user = $parse_query[0] == 'user_post'? true : false;
                    if($is_user)
                    {
                        $query->where($parse_query[1],'LIKE','%'.$request->query('searchQuery').'%');
                    }
                }
            },
            'dt_project'
        ]);

当我尝试在浏览器上执行时,它返回

1/1) ErrorException 未定义变量:request

我该怎么办?感谢月亮和回来。呵呵呵呵

标签: laravelrequest

解决方案


试试这个,将您的第 2 行更改为:

'user_post' => function($query) use($request){

解释:

Request $request只能在控制器功能中使用,例如:

public function store(Request $request)
{
    //code here
}

为了$request在另一个函数中传递参数,请使用use(这也称为变量继承):

public function store(Request $request)
{
    $user= User::with(['roles' => function($query) use($request){
                                                   ^^^
            $query->where('roles.id', $request['role_id'])->first();

        }])->get();
}

推荐阅读