0

個人的なメモ アプリを想像してみてください。ユーザーは自分のメモを追加、表示、編集できますが、他のユーザーのメモは編集できません。

メモには次の方法でアクセスします。app.dev/notes/{id}

当然のことながら、ID が のメモを所有していて140、URL で ID を 160 に変更すると、このメモを表示できます。

そうならないようにしたい。これにはミドルウェアを使用することを考えましたが、柔軟性がないためミドルウェアを使用すべきではなく、代わりに FormRequests を使用する必要があるという人々の意見を読みました。

問題は、この場合に FormRequests を使用する方法がわからないことです。FormRequests を使用して、ユーザーが自分に属していないメモを編集できないようにしました。ID のメモを所有していて、ID のメモ140を編集/投稿しようとすると160、フォーム リクエストでそれができません。

しかし、この FormRequest は実際には ID のメモを表示することを妨げません160

誰かがこれを行う正しい方法を教えてもらえますか?

ありがとうございました

4

2 に答える 2

1

ポリシーを使用できます。承認のためのよりクリーンで簡単な方法。

認可ポリシー : Laravel

ポリシーを作成して登録した後、次のようなことができます

public function access(User $user, Note $note) 
{ 
    return $user->id === $note->user_id; 
} 

次に、あなたの方法で

if (!$user->cannot('access', $note)) 
{ 
    // throw error or redirect somewhere else 
}
于 2016-06-06T12:49:48.387 に答える