这让我疯狂,因为我认为我做的是正确的事情,但是它不能正常工作。中间件无法按预期方式工作 - Laravel
我有一个route
与连接到它像下方的middleware
;
Route::get('post/{id}/{name}', '[email protected]')->name('blog-post')->middleware('blogGuard');
正如你可以看到,我定义2个PARAMS 在我的控制器我有以下;
public function post() {
return view('pages.blog.post');
}
这样定义的中间件;
public function handle($request, Closure $next)
{
if (is_null($request->input('id')) ||
is_null($request->input('name'))) {
return redirect()->route('blog-home');
}
return $next($request);
}
现在,如果我点击这样的链接; http://blog.example.co.uk/post/153/firstpost
middleware
不应该正确启动?
事实并非如此。 middleware
执行并且我被重定向。但是,如果我删除middleware
,那么我可以访问该页面。
任何帮助表示赞赏。
使用这个工程,但我没有被重定向到'bloh-home'而是我的'404'页面...我试过'(!$ id ||!$ name)'还有'($ id =“” || $ name =“”)'---如果我做了类似'http:// blog.example.co.uk/post/133'的事情,那意味着这个名字丢失了,重定向应该在 –
想要使这些可选的路由参数。当他们被要求时,所有参数必须在那里以匹配路线。 – lagbox
所以我想我真的不需要'中间件',因为如果有缺失的话,laravel会发送到404? –