0

説明してみます。私は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;
}

私が必要としているのは、製品ポリシーに別のパブリック関数を作成して、ユーザーに承認を要求せずに製品をフロントエンドにリストすることです。

ありがとう。

4

1 に答える 1