2016-09-28 6 views
0

承認を行うポリシーを作成する方法を学習するのに役立つ必要があります。私はゲイツ氏をよく理解してくれていて、彼らは私のために働いていますが、私がポリシーを作成するときにはうまくいきません。ポリシーを使用したLaravel承認

ここに私が使用しているコードがあります。私は、Imが特定のモデル関数の認可のための小切手をどこに置いているかを調べようとしているという問題を考えていますか?

ここでは、どのように動作するかを確認するために、テストを真または偽に切り替えるだけです。しかし、私がメッセージコントローラでこれを行うとき:

if ($user->can('update', $message)) { 
    return 'You can update this post'; 
} 

これは動作しません。私はまた、$ this-> authorize( 'update'、$ message)を使ってコントローラーの認証をチェックする別のアプローチを見つけました。しかし、それはどちらもうまくいきませんでした。

ありがとうございます。

+0

あなたのポリシークラスをあなたの 'AuthServiceProvider'に登録しましたか? – Doom5

+0

@ Domm5はい私は 'App \ Message' => 'App \ Policies \ MessagePolicy'でした – Kaley36

答えて

1

だから私はそれに眠った後に実行するシステムを得た。私は多くのことを変え、私が何をしたのか分かりませんでした。しかし、最大の違いは私がどのように政策を登録したのかを変えていたようです。 AuthServiceProviderのpolicies配列には、明らかに書式中に書かれた例があります。ドキュメントでは、最後に:: classの形式でモデルとポリシーを登録することを示していますが、私はString形式を使用しました。私はこれが私の問題だと思います。また、Message :: classの代わりにauthorizeメソッドにメッセージの実際のインスタンスを渡さなければなりませんでした。

関連する問題