説明してみます。私はeコマースアプリケーションを開発しており、バックエンド承認を提供するために、モデル(製品モデル)にlaravelポリシーを適用しました。
問題は、すべてのユーザーが製品を表示できるフロントエンド ビューで同じ製品モデルを使用しようとしたときに発生します。
ルート ビューが保護されているかどうかに関係なく、すべてのモデルにポリシーが適用され、承認ポリシーのないモデルから情報を取得するいくつかのビュー (例: フロントエンド > リスト製品) を残す方法が見つかりません。
例: バックエンドのビューに適用されるポリシー:
public function view(User $user)
{
$method = (string)$this->ability;
if ($user->hasRole($this->Model) === null) {
return 0;
}
return $user->hasRole($this->Model)->$method;
}
私が必要としているのは、製品ポリシーに別のパブリック関数を作成して、ユーザーに承認を要求せずに製品をフロントエンドにリストすることです。
ありがとう。