传递路由参数时尝试在 Laravel 中间件中获取 属性 的非对象错误
Trying to get property of non-object error in Laravel middleware when passing the route parameters
我正在尝试从中间件读取路由参数。
路由定义为:
Route::get('/tasks/{task_id}','TaskController@search')->middleware('test');
错误发生在定义为:
的中间件中
namespace App\Http\Middleware;
use Closure;
use App\Task;
class test
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
print_r($request->route()->parameter('task_id'));
/*$result=Task::where('id','=',$id)->get()->count();
if($result==0)
return "This id doesn't exist!";
return $next($request);*/
}
}
您应该能够使用以下内容执行您想要的操作:
$this->route('task_id');
使用这个,其中 task_id 应该是您要查找的参数的名称
$request->route('task_id')
问题是中间件想要 return 重定向,任何时候。
我正在尝试从中间件读取路由参数。 路由定义为:
Route::get('/tasks/{task_id}','TaskController@search')->middleware('test');
错误发生在定义为:
的中间件中namespace App\Http\Middleware;
use Closure;
use App\Task;
class test
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
print_r($request->route()->parameter('task_id'));
/*$result=Task::where('id','=',$id)->get()->count();
if($result==0)
return "This id doesn't exist!";
return $next($request);*/
}
}
您应该能够使用以下内容执行您想要的操作:
$this->route('task_id');
使用这个,其中 task_id 应该是您要查找的参数的名称
$request->route('task_id')
问题是中间件想要 return 重定向,任何时候。