を使用して他のユーザービューのポストを防止することは、私はこのようなルートを持っている:ポリシーLaravel 5.5
Route::get('{username}/posts','[email protected]')->name('post.editor');
が、私は彼らに属していないポストを見てから、他のエディタを防ぎたいです。私はPostPolicyを次のように作成しようとしました:
public function view(User $user, Post $post)
{
return $user->id === $post->user_id || $user->hasRole('admin');
}
私のPostControllerでユーザーを認証するにはどうしたらいいですか?ユーザー名ではなくユーザーIDを使用するので、ポリシーを正しく記述しましたか?ありがとう。
$ this-> authorize( 'view'、$ post);あなたが書いたように、それはユーザー変数を必要としませんか?私はそれをフィルタリングする必要があるので、投稿はこのユーザーに属しています。 – Ying
ユーザーモデルをポリシーモデルにマップすると、ポリシーでユーザーが既に取得されており、ポストにはポストを渡すだけです。 public function view(User $ user、Post $ post) { return $ user-> id === $ post-> user_id || $ user-> hasRole( 'admin'); } – alithedeveloper