Php 对特定控制器功能进行验证Laravel 5.1

Php 对特定控制器功能进行验证Laravel 5.1,php,laravel,authentication,laravel-5.1,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() { $th

我正在开发基于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');
}
它不起作用。我以前做过,效果很好。 这在我的
applicationcontroller
中,我希望
create
功能是公共的,并且只在
索引上应用登录身份验证。我不会使用
编辑、更新、删除

你能试试吗

public function __construct()
{
    $this->middleware('auth', ['only' => 'index']);
}
你也可以做相反的事情

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

您不需要使用_-construct方法,因为每当某个特定的控制器发生更改时,开发人员都必须在每个控制器上专门更改它。最好的选择是在路由中添加auth函数并指定控制器。如果您对提供的auth函数有任何问题,可以创建一个并在内核上指定它。