令人驚訝的$這個 - >中間件( '客戶') - >除([ '創造', '商店']),而這 - $不工作>中間件( '權威性') - >除( ['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
回答你的問題:) –