1
Laravelポリシーは、trueまたはfalseを返すcan()ステートメントとして定式化されています。しかし、アクションが許可されていない場合、なぜ(このメソッドはtrueまたはfalseのみを返すことができるため)理由が与えられることはありません。私たちがユーザーに言うことができるのは、このアクションを実行することができないということだけです。Laravel Policyがユーザ/発信者に失敗した理由を伝えることはできますか?
発信者にLaravelポリシーが失敗した理由を通知する確立された方法はありますか?
Illuminate\Auth\Access\AuthorizationException('Message why fails');
政策が失敗した場所に:あなたは何ができるか
このようなことをすれば、try :: catchでラップすることなく、Gate :: check()のようなことをすることができますか? EDIT:Gate :: check()の定義を見て、実際にはtry-catchでその呼び出しをラップしますが、AuthorizationExceptionsを捕捉するだけなので、ポリシーにスローする例外はAuthorizationException(またはそれから継承)。私はあなたの答えを受け入れたとマークします、ありがとう! – quakes