0

我在 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());

    }

有没有办法做到这一点?谢谢你。

4

1 回答 1

0

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

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

尽管那仍然会在构造函数中进行。

于 2013-10-08T19:57:24.010 回答