如何使构造具有beforeAuth仅适用于Laravel 4中的某些视图/函数

时间:2013-10-08 19:48:07

标签: authentication laravel laravel-4

我在Laravel有一个资源我用ArtistsController调用了艺术家。我想为某些页面添加过滤器,但不是全部。我知道我可以为资源控制器中的所有函数/视图添加一个过滤器,如下所示:

public function __construct()
    {
    $this->beforeFilter('auth', array('except' => array()));
    }

如何将beforeAuth过滤器仅添加到某个视图/功能?我希望用户登录以进入“索引”视图,但我希望用户能够在不必登录的情况下转到“显示”页面:

public function index()
    {
        $artists = Artist::all();

        return View::make('artists.index', compact('artists'))
                ->with('artists', Artist::all())
                ->with('artists_new', Artist::artists_new());
    }

public function show($id)
    {
        $artist = Artist::find($id);

        return View::make('artists.show', compact('artist'))
            ->with('fans', Fan::all());

    }

有办法做到这一点吗?谢谢。

1 个答案:

答案 0 :(得分:0)

不确定这是否有帮助,但您可以使用键而不是(如果我理解您的问题)。

$this->beforeFilter('auth', array('only' => array('login', 'foo', 'bar')));

虽然那仍然会在构造函数中。