users
、books
、およびの 3 つのテーブルがあるとしusers_books
ます。
ビューの 1 つで、現在のユーザーがアクセスできるすべての書籍のリストを表示したいと考えています。ユーザーとブックに一致する行が に存在する場合、ユーザーはブックにアクセスできますusers_books
。
これを達成するには、(少なくとも) 2 つの方法があります。
- モデルの私の
fetchAll()
メソッドでは、テーブルで何らかの種類の a を実行します。books
join
users_books
- ACL プラグインでは、まずすべての本からリソースを作成します。次に、すべてのユーザーからロールを作成します。次に、テーブルに基づいて各リソースへのユーザー アクセスを許可または拒否し
users_books
ます。最後に、モデルのfetchAll()
メソッドで、現在のユーザーをロールとして使用して、見つけた各書籍を呼び出します。books
isAllowed()
アプリケーションの他の場所で Acl を使用できるため、最後のオプションが最適だと思います。これにより、重複したアクセス チェックを実行する必要がなくなります。
何を提案しますか?