在特定控制器功能上进行验证Laravel 5.1

时间:2015-09-14 13:09:37

标签: php laravel authentication laravel-5.1

我正在研究基于Laravel 5.1的系统。我有一个路线资源:

Route::resource('applicant', 'ApplicantController');

因此我们期望它在控制器中具有以下功能:

index, create, store, edit, update, delete

我想要的是仅在index函数中应用中间件auth。通常,如果要在整个控制器上应用Auth,则需要执行以下操作:

public function __construct()
{
    $this->middleware('auth');
}

但当我删除它时,只是这样做:

public function index()
{
    $this->middleware('auth');
    return view('applicant.index');
}

它不起作用。我之前做过这个并且工作正常。 这是我的ApplicantController我希望create功能公开,只在index上应用登录身份验证。我不会使用edit, update, delete

1 个答案:

答案 0 :(得分:6)

你可以尝试

吗?
public function __construct()
{
    $this->middleware('auth', ['only' => 'index']);
}

您也可以执行相反的操作

public function __construct()
{
    $this->middleware('auth', ['except' => ['create', 'store', 'edit', 'update', 'delete']]);
}