Маршрутизация для работы не работает, но как-то закрытие делает | Laravel 7 - PullRequest
0 голосов
/ 23 марта 2020

У меня проблема с маршрутизацией, и я почти сошел с ума. В моем файле маршрута API:

Route::post('/role-user/attach/{user}', 'RoleUserController@attach')->name('role.user.attach');

Это мой контроллер:

public function attach(User $user)
{ 
    $user->assignRole($this->roles);
    return response('',200);
}

Я отправляю запрос на маршрут по имени в моем тесте: (также пробовал путь)

public function roles_can_be_attached_to_a_user()
{
    $user = factory(\App\User::class)->create();
    $roles = factory(\App\Role::class,5)->create();

    $this->post(route('role.user.attach', ['user' => $user]), ['roles' => $roles]);

    $this->assertTrue($user->Roles->contains($roles->first()));
    $this->assertCount(5, $user->Roles);
}

А потом выдает ошибку вроде:

PDOException: SQLSTATE[HY000]: General error: 25 column index out of range

Самое смешное, когда я перемещаю код из контроллера в файл маршрута API как замыкание:

Route::post('/role-user/attach/{user}', function(App\User $user) {
    $user->assignRole($this->roles);
    return response('',200);
})->name('role.user.attach');

Тогда он горит зеленым без каких-либо проблем. Чего только мне не хватает? Я боролся около 2 часов, и я даже не знаю, как погуглить. Если это из-за sqlite, то он должен также дать красный свет в закрытии, верно? Кроме того, мой контроллер находится в основном каталоге контроллера, как и должно быть. Заранее спасибо!

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