特定控制器函数的Laravel 5.1身份验证

7

我是基于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个回答

10

你能试一下吗

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

你也可以进行相反的操作

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接