Laravel路线错误:路线[登录]未定义

时间:2018-08-07 20:41:02

标签: laravel rest http routes

我正在开发Laravel API,但很难找到以下问题的正确答案。问题是当我查询组/联接端点时遇到以下错误。

InvalidArgumentException: Route [login] not defined. in file\vendor\laravel\framework\src\Illuminate\Routing\UrlGenerator.php on line 372

当我查询GroupController @ getAll时,我正在从数据库中获取结果。因此,现在我对下一步的操作感到有些慌张。

我的组控制器代码(仅已实现的请求)

/**
 * @param CreateGroupRequest $request
 */
public function createGroup(CreateGroupRequest $request){
    $data = $request->get('group', []);
}

/*
 * @param JoinGroupUserRequest $request
*/
public function joinGroup(JoinGroupUserRequest $request){
    $group_id = $request->group_id;
    $user_id = $request->user_id;

    $data = $this->groupService->joinGroup($group_id, $user_id);

    return response()->json([], 201);
}

我的网上论坛存储库

class GroupRepository{

/*
    Get a new instance of empty Group Model
*/
public function GetModel(){
    return new Group();
}

/**
 * @param int $private
 * @return mixed
 */
public function GetAllGroups($private = 0){
    $groups = Group::where('group_private', $private)->get();

    return $groups;
}

/**
 * @param array $data
 * @return Group
 */
public function CreateGroup(array $data){
    $group = $this->GetModel();
    $group->fill($data);
    $group->save();

    return $group;
}

public function AddUserToGroup(int $group_id, int $user_id){
    $group_user = new GroupUsers();
    $group_user->group_id = $group_id;
    $group_user->user_id = $user_id;
    $group_user->save();

    return $group_user;
}
}

我的GroupService

class GroupService
{
private $groupRepository;

/**
 * GroupService constructor.
 * @param php $groupRepository
 */
public function __construct(GroupRepository $groupRepository){
    $this->groupRepository = $groupRepository;
}

/*
 * Gets all Groups
*/
public function getAll()
{
    return $this->groupRepository->GetAllGroups();
}

public function joinGroup($group_id, $user_id){
    return $this->groupRepository->AddUserToGroup($group_id, $user_id);
}
}

我的api路线

Route::group(['middleware' => 'web', 'prefix' => 'auth'], function () {
   Route::post('login', 'AuthController@login');
   Route::post('signup', 'AuthController@signup');
   Route::get('social/{provider}', 'AuthController@signupSocial');
   Route::get('callback/{service}', 'AuthController@callback');

   Route::group(['middleware' => 'auth:api'], function() {
      Route::get('logout', 'AuthController@logout');
      Route::get('user', 'AuthController@user');
   });
});

Route::group(['middleware' => 'auth:api', 'prefix' => 'group'], function () {
   Route::get('/', 'GroupController@getAll');
   Route::post('join', 'GroupController@joinGroup');
});

邮递员请求

POST /api/group/join HTTP/1.1
Host: localhost:8000
Content-Type: application/json
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6IjBhNThiOWY4NTBmZTNmNDZmMTQzYmM2NmY1NzVkZThkMTRiOGFhZjZjMWU5ZThiMjJjNDU3N2QzNmYxYTgyM2JkMjJiMTMzNzBhODcyODAxIn0.eyJhdWQiOiIzIiwianRpIjoiMGE1OGI5Zjg1MGZlM2Y0NmYxNDNiYzY2ZjU3NWRlOGQxNGI4YWFmNmMxZTllOGIyMmM0NTc3ZDM2ZjFhODIzYmQyMmIxMzM3MGE4NzI4MDEiLCJpYXQiOjE1MzM2NjY3NjIsIm5iZiI6MTUzMzY2Njc2MiwiZXhwIjoxNTY1MjAyNzYyLCJzdWIiOiI2Iiwic2NvcGVzIjpbXX0.s96tp1nxYJoXV8j1JNsmPKz0yw0qF1G13v2581HU6uVt5WJkOdXF4ysOQdccIaBDO05CPwqtzjtjgGDV41EuCWgXeT0qYJwPtZzx6OhYmeZiSlsYvC69ttxWRMFIefpX1tEZH0CaFVTV0ZaMpuwBdY7ElDxjM_XWuApFIyouqvNudKrMT0DztY1HrzOeqzzLBZgJbsrrTEnndq37TpXaFBjMfy0GCEt1RFNuGEkws1cQo4SBVt4Zbqdevmyo6kJ2rFMjOn6YdDVg-eYE08X1Qn-51fuHabgKy33_UnwvBATNpF0DgzjmaD7s9C0u8B1T9VIEdRnL6Fr9nVDaIV9aTcSozA-xdLQ7CLNgGLxkilw5Pm4tjo75-UcD-xMdvJ4APWMzk1R4VHa11JjPUzs_4aVLegwE3apExYxjMXO4wC0pyxUoY-1QvVloUEbckx2iJI91P16aKgvKl8IgxjZZdeYVjLwc6IRAHtF4Rv0PXSD6t_1IDSZydiu7s_mT0p3rRxF59bNC23O1QOtdKsYB6Bk1T9mdxG5ndTX_v2HqPZyhjuZQzmOJUH6GotkRPvcWldN-g0kKwA4dF2cYVA7el4RXge_bAAUbbas3l0pWuMNBJEfW78Kh7mmG9oJjj5Qipqzd7clWRhtkUyOikHPvIrJyLdNVdFNyfOeHesjWeaU
Cache-Control: no-cache
Postman-Token: c4b9178e-f64c-4146-ab7f-7453961e11f7

{
"group_id": "1",
"user_id": "1"
 }

现在我尝试的是

  • 清除了我的路线缓存
  • 命名我的登录路径,该路径给出了MethodNotAllowedException

有人可以把我推向正确的方向吗?

1 个答案:

答案 0 :(得分:0)

解决方案是在application / json中添加Accept标头