laravel作ったサイトのリファクタリングをしています。
これまではコントローラー内にミドルウェアの適用を書いていたのですが、
ルート内にミドルウェアの適用をしようとしています。
class RestUsersController extends Controller { public function __construct() { $this->middleware('auth', ['except' => 'show']); } }
上記のようにコントローラー内で定義する方法は知っている(公式リファレンス「コントローラー」)のですが、
分からないのは「route/web.php内で部分的にミドルウェアを適用する時の書き方」です。
やりたいこと
「RestUsersControllerのshow以外のアクションにだけミドルウェアを適用したい」
Route::resource('users', 'RestUsersController', ['only' => ['index', 'show', 'edit', 'update', 'destroy']])->middleware('auth')->except('show');
上記のようにexcept()、またはonlyを使うと、「このアクションだけを使用する(しない)」という意味でのexcept()/only()になってしまいます。
アクション内に書く方法は分かっている上での話ということもあり
必須ではないのですが・・・今後の勉強のためにアドバイスいただけますと幸いです。
なぜ「初歩的なこと」と思われたのでしょうか。
ドキュメント読んだだけで解決しない、ヒントにもならないようなことであれば
とても「初歩的」と言えないのでは。
やろうとしていること、というかリファクタリング自体、初歩的なフェーズではありませんよ。
ご指摘ありがとうございます。
仰る通り、初歩的ではないかもしれません。
「チェーンメソッドで繋げたり、[]で囲うことで複数・個別に適用できたりと
laravelは書きやすく、ご存知の方が多いことなのではないか」
という私が抱いていたイメージから初歩的と表現していました。
不適切かと思い修正いたしました。
改めてご存知のことがあれば対応してくださいますと幸いです。
回答1件
あなたの回答
tips
プレビュー