Laravel 5.2 で認証の必要があるページがあり、URLは次のような構造をしています。投稿者別に記事が分けられていて、URLには投稿者IDと記事IDが含まれています。
/author/123/post/234
/author/123/post 以下のページには権限があるユーザーのみアクセスできるという形にしたいと思っています。
そこでコントローラ(PostController)のコンストラクタで次のようにしました。
public function __construct() { $this->middleware('auth:admins'); $id = Route::current()->getParameter('author'); $author = User::find($id); if(!$author) abort(404); if(Auth::user()->cannot('edit', $author)){ abort(403); } }
ブラウザで見る限りこれは正しく動作しているように見えます。
しかし、コンソールで php artisan route:list を表示しようとすると次のようなエラーになってしまいます。Route::current() が null になっているように見えます。
[Symfony\Component\Debug\Exception\FatalErrorException] Call to a member function getParameter() on null
こういったケースではどのような形で認証を行うのが正しいのでしょうか?
よろしくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/02/14 03:24
2017/02/14 04:32