0

Laravel アプリケーション用のアクセス制御ロジックを実装しています。ユーザーがそのリソースの表示を許可されていない場合、「許可されていない」ページにリダイレクトしたいと思います。

URL にコントローラー/メソッド ロジックを使用しています。

呼び出されたコントローラー/メソッドからリダイレクトできますが、コードをよりスケーラブルにするために、親コントローラー (おそらく Base_controller) の ACL ロジックを確認し、URI コントローラー/メソッドが処理される前にそこからリダイレクトしたいと考えています。アクセスしました。

コンストラクトにリダイレクトを追加しようとしたり、リダイレクトするコンストラクト内の別のメソッドを呼び出したりしようとしましたが、役に立ちませんでした。

「Redirect::to」はURLで指定されたコントローラー/メソッドでのみ機能し、それ以外の場所では機能しないように見えるため、これが可能かどうか疑問に思っています-それは正しいですか?

4

1 に答える 1

5

リダイレクトを「返す」必要があります。これはどこからでも実行できます。

return Redirect::to('login')

ただし、フィルターでロジックを実行する必要があります。

public function __construct()
{
    $this->beforeFilter('acl');
}

次にfilters.phpで

Route::filter('acl', function()
{
    if ($something)
    {
          return Redirect::to('somewhere');
    }
});
于 2013-02-05T15:59:19.217 に答える