Привязка модели маршрута не разрешает модель из идентификатора - PullRequest
0 голосов
/ 07 мая 2019

Я создаю приложение в Laravel 5.7. Я установил маршрут в моем файле routes/api.php, который привязан к пользовательской модели. Когда я передаю существующий идентификатор пользователя в маршрут, он преобразуется в пустую модель пользователя.

Я считаю, что следовал стандарту Laravel для этого, намекая на тип для пользовательской модели в контроллере.

маршруты / api.php

Route::prefix('role-permissions')->group(function () {
    Route::get('by-user/{user}', 'RolePermissionsController@getByUserId')->name('api.role-permissions.by-user');
});

приложение / Http / Контроллеры / RolePermissionsController.php

public function getByUserId(User $user)
{
    dd($user);
    return $this->getAsResourceCollection($this->repository->getByUserId($user));
}

dd($user); возвращает пустой User объект

Ожидается: заполненная пользовательская модель с правильным идентификатором. Я могу подтвердить, что пользователь с Id 1 существует в моей таблице

Фактический:

User {#375
  #fillable: array:3 [
    0 => "name"
    1 => "email"
    2 => "password"
  ]
  #hidden: array:2 [
    0 => "password"
    1 => "remember_token"
  ]
  #connection: null
  #table: null
  #primaryKey: "id"
  #keyType: "int"
  +incrementing: true
  #with: []
  #withCount: []
  #perPage: 15
  +exists: false
  +wasRecentlyCreated: false
  #attributes: []
  #original: []
  #changes: []
  #casts: []
  #dates: []
  #dateFormat: null
  #appends: []
  #dispatchesEvents: []
  #observables: []
  #relations: []
  #touches: []
  +timestamps: true
  #visible: []
  #guarded: array:1 [
    0 => "*"
  ]
  #rememberTokenName: "remember_token"
  #accessToken: null
}

Ответы [ 2 ]

0 голосов
/ 07 мая 2019

Я не думаю, что $ user должен быть объектом.Это параметр, передаваемый в маршруте, поэтому код должен быть:

public function getByUserId($user)
{
    dd($user);
    return $this->getAsResourceCollection($this->repository->getByUserId($user));
}
0 голосов
/ 07 мая 2019

Я удалил маршрут промежуточного программного обеспечения API метод mapApiRoutes в RouteServiceProvider

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...