传递路由参数时尝试在 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 重定向,任何时候。