令人惊讶的$这个 - >中间件( '客户') - >除([ '创造', '商店']),而这 - $不工作>中间件( '权威性') - >除( ['index','show']);在PostsController上完美运行。两者在逻辑上意味着相同,为什么第一个不工作?这里是PostsController:Laravel中间件工作奇怪
<?php
namespace App\Http\Controllers;
use App\Post;
class PostsController extends Controller
{
public function __construct() {
$this->middleware('auth')->except(['index', 'show']);
}
public function index() {
$posts = Post::latest()->get();
return view('posts.index', compact('posts'));
}
public function show(Post $post) {
return view('posts.show', compact('post'));
}
public function create() {
return view('posts.create');
}
public function store() {
$this->validate(request(), [
'title' => 'required',
'body' => 'required'
]);
Post::create([
'title' => request('title'),
'body' => request('body'),
'user_id' => auth()->id()
]);
return redirect('/');
}
}
他们都应该工作得很好。 “这个中间件在另一个工作时不起作用”是什么意思?是什么让你这么说 ? –
@SteveChamaillard当我使用第一个构造时,我可以从来宾帐户创建一个帖子。它不会过滤掉请求。 – SanyamMishra
回答你的问题:) –