laravel - 路由功能不起作用,但不知何故关闭 拉拉维尔 7
问题描述
我的路由有问题,我快吓坏了。在我的 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);
}
我在测试中按名称向路由发出 post 请求:(也尝试过路径)
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,那么它也应该在关闭时发出红灯,对吗?另外,我的控制器应该在主控制器目录中。提前致谢!
解决方案
推荐阅读
- java - 'If'条件不适用于java中if条件内的堆栈弹出和peek方法
- vb.net - 在命令行参数中获取文件
- cytoscape.js - 将 cytoscape.js “循环”边缘定位在节点的右下角,逆时针方向
- javascript - 为什么用户在刷新页面后退出?反应/Redux 应用程序
- python - 如何获取矩阵中被认为异常的值的坐标
- javascript - 当我按下复选框时,Javascript HTML表格移动
- java - 编译使用 jar 存档的 Java 文件时出现错误“包不存在”
- c# - TabPage 可以有 MenuStrip 吗?
- r - 在 R 中将函数线程化到向量上的规则是什么?
- c - 在 C 中编写 hasNext() 函数的正确方法是什么?