我正在研究基于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
答案 0 :(得分:6)
public function __construct()
{
$this->middleware('auth', ['only' => 'index']);
}
您也可以执行相反的操作
public function __construct()
{
$this->middleware('auth', ['except' => ['create', 'store', 'edit', 'update', 'delete']]);
}