如何使索引表单资源路由出中间件?

时间:2019-08-15 14:31:10

标签: laravel

现在这条路线没有了(除外),它只是可以正常工作,但是当我想到达诸如索引或存储之类的任何路线时,我必须登录然后从它们获取数据。因此,我想使索引路由出此中间件(无需登录就可以到达索引)希望得到它:)

路线的:

Route::group(['middleware' => 'auth:api'], function() {

Route::resource('cards', 'cardsController', ['except' => 'index']);

Route::resource('services', 'servicesController', ['except' => 'index']);

Route::get('getUserinfo', 'LoginController@getUser');

});

这是我的卡片路线列表:

enter image description here

这是我从邮递员那里获得所有卡片时所用的:

enter image description here

3 个答案:

答案 0 :(得分:1)

您在路由组中有['except' => 'index']。尝试将其取出并检查是否正常。

已编辑:

如果您要显示索引而不登录,请尝试在路由组之外编写另一条路由

类似这样的

Route::get('cards', 'cardsController@index');
Route::get('services', 'servicesController@index');

Route::group(['middleware' => 'auth:api'], function() {

Route::resource('cards', 'cardsController', ['except' => 'index']);

Route::resource('services', 'servicesController', ['except' => 'index']);

Route::get('getUserinfo', 'LoginController@getUser');

});

答案 1 :(得分:1)

您应该在中间件之外定义路由。...您想在不登录的情况下使用它。...

Route::get('cards', 'cardsController@index');
Route::get('services', 'servicesController@index');

在中间件中,您必须按以下方式定义路由

Route::resource('cards', 'cardsController')->except('index');

Route::resource('services', 'servicesController')->except('index');

答案 2 :(得分:0)

首先,您应该正确命名控制器,而不是

cardsController

命名为

CardsController

发生错误是因为您要在Controller中排除索引动作。

代替此:

Route::resource('cards', 'cardsController', ['except' => 'index']);

Route::resource('services', 'servicesController', ['except' => 'index']);

执行以下操作:

Route::resource('cards', 'cardsController');

Route::resource('services', 'servicesController');

签出docs

请不要忘记为您的控制器命名。