私のプロジェクトにポリシーを実装しようとしています。UserRelationPolicy
に追加したいカスタムメソッドaskFriend
があります。ポリシーが存在しないLaravel Gateリソース
私はUserRelationPolicyのaskFriendメソッドを実装しましたが、[email protected]
から呼び出す際に、このメソッドから呼び出す方法を尋ねました。
何か$this->authorize('askFriend', $friend);
のようなものですが、動作していなかったので、一切無視しました。だから私は、マニュアルでさらに検索し、私はこのようなリソース名にゲート方式でUserRelationPolicy
で特定のメソッドをバインドすることが分かっ:Documentation Writing Gate
:あなたがここに表現を見つけることができます
Gate::resource('userrelation', 'UserRelationPolicy', [
'userrelation.askfriendrelation' => 'askFriendRelation'
]);
このコードを実行しようとすると、次のエラーが表示されます。
Call to undefined method Illuminate\Auth\Access\Gate::resource()
他に何もありません。 Resourceメソッドはまったく存在しないようです。多くの検索の後、ヘッダにすべてGate
を含めるようにしてください。静的に、またはインスタンスで呼び出そうとしています。何も仕事はありません。その方法はどこにも見つかりませんでした...
それは何か忘れですか?ポリシークラスのコントローラからカスタムメソッドを呼び出すにはどうすればよいですか?
コマンド 'PHPの職人-V'は私に次のような結果' Laravelフレームワーク5.4.18'を与えるだから、私は右のバージョンでだと思いますしかし、私は方法を見つけることができません... – dib258
'Illuminate \ Auth \ Access \ Gate.php'でGateクラスをチェックし、これと比較してください:' https://github.com/laravel/framework/blob/5.4/src/Illuminate/Auth/Access/Gate.php'と入力します。コードに違いがある場合は、composer.jsonを再度確認し、「composer update」を実行する必要があります。 –
私は今日同じエラーが発生しました。私は 'compose update'を実行し、5.4.24に更新され、問題は解決されました。チャンスをつかむ。 –