У меня проблема с маршрутизацией, и я почти сошел с ума. В моем файле маршрута 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, то он должен также дать красный свет в закрытии, верно? Кроме того, мой контроллер находится в основном каталоге контроллера, как и должно быть. Заранее спасибо!