在app/routes.php
Route::resource('users', 'UsersController',
array('except' => array('new', 'update')));
Route::post('users/authenticate', array('as' => 'authenticate', 'uses' => 'UsersController@authenticate'));
Route::get('users/is_authenticated', array('as' => 'authenticated', 'uses' => 'UsersController@is_authenticated'));
方法is_authenticated没有返回JSON,但是当我将Response::json()
放在index
方法中时,它返回JSON模式。
这是我的is_authenticated
方法:
public function is_authenticated()
{
return Response::json(['authenticated' => Auth::check()]);
}
这里出了什么问题?我运行php artisan routes
并返回此路线:
GET|HEAD api/users/is_authenticated | authenticated | UsersController@is_authenticated
访问该页面时我没有找到404 Not Found,但没有内容。问题是什么?
编辑:路线以api
答案 0 :(得分:0)
问题是调用users/is_authenticated
时会激活您的第一条路线。在Laravel中,路由的顺序很重要,因为第一个匹配的路由被执行。您只需更改路线的顺序即可使路线users/is_authenticated
可用,如下所示:
Route::post('users/authenticate', array('as' => 'authenticate', 'uses' => 'UsersController@authenticate'));
Route::get('users/is_authenticated', array('as' => 'authenticated', 'uses' => 'UsersController@is_authenticated'));
Route::resource('users', 'UsersController', array('except' => array('new', 'update')));