【发布时间】:2016-08-12 14:49:01
【问题描述】:
当我尝试插入 role 时出现错误。我在 StackOverFlow 中找到了此问题的一些解决方案,但所有这些都不能解决我的问题。
我正在尝试从roles 表中获取id 到user_roles 表的roleID 列。这里我使用的是Laravel 5.2 的Query Builder。
public function store(Request $request)
{
//
$role = [];
$role['role'] = $request->input('role');
$data= Role::create($role);
$id= $data->id;
DB::table('user_roles')->insert([
'roleID' => $id
]);
//return $data;
return redirect(route('allRole'));
}
当我插入任何角色时,它会在roles 表中插入新数据,但我在user_roles 表中没有得到roleID。我收到错误:
SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`amarjobs`.`user_roles`, CONSTRAINT `fkuserRolesuserID` FOREIGN KEY (`userID`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE) (SQL: insert into `user_roles` (`roleID`) values (14))
我在哪里做的问题?提前致谢。 搜索结果:
【问题讨论】:
-
您是否要为 User 分配角色?你用的是什么包?
-
我没有使用任何包。我正在尝试制作 acl(访问控制列表)。是的,现在我正在尝试为用户扮演角色。
-
您能提到您的用户、角色数据库结构和模型关系吗?所以我可以相应地指导你
-
@ChoncholMahmud
user_roles表的数据库结构是什么?我猜它有一个user_id列并且它有一些外键约束&这里你没有传递任何user_id值DB::table('user_roles')->insert([ 'roleID' => $id ]); -
@Qazi 这里是关系视图prntscr.com/auhcxc
标签: php mysql sql-server laravel laravel-5.2