gpt4 book ai didi

php - Yii2 RBAC GII 完整性约束违反

转载 作者:搜寻专家 更新时间:2023-10-30 23:00:52 25 4
gpt4 key购买 nike

到处找这个,一无所获。

我正在使用 Yii2 的迁移来为 RBAC 添加数据库表,它们创建得很好,仔细检查了所有内容,一切都很好。

我知道你可以用

$author = $auth->createRole('author');
$auth->add($author);
$auth->addChild($author, $createPost);

并且做得很好,但是,我想要自定义管理区域来设置角色、权限等,并最终添加组策略。

当我通过 gii 创建模型和 CRUD 来完成此操作时,每当我尝试添加 auth_item 时,我都会收到以下错误

    Integrity constraint violation – yii\db\IntegrityException

SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`ronbuild`.`auth_item`, CONSTRAINT `auth_item_ibfk_1` FOREIGN KEY (`rule_name`) REFERENCES `auth_rule` (`name`) ON DELETE SET NULL ON UPDATE CASCADE)
The SQL being executed was: INSERT INTO `auth_item` (`name`, `type`, `description`, `rule_name`, `data`) VALUES ('dog', 1, '', '', '')
Error Info: Array
(
[0] => 23000
[1] => 1452
[2] => Cannot add or update a child row: a foreign key constraint fails (`ronbuild`.`auth_item`, CONSTRAINT `auth_item_ibfk_1` FOREIGN KEY (`rule_name`) REFERENCES `auth_rule` (`name`) ON DELETE SET NULL ON UPDATE CASCADE)
)

Caused by: PDOException

SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`ronbuild`.`auth_item`, CONSTRAINT `auth_item_ibfk_1` FOREIGN KEY (`rule_name`) REFERENCES `auth_rule` (`name`) ON DELETE SET NULL ON UPDATE CASCADE)

in C:\wamp\www\ronbuild\vendor\yiisoft\yii2\db\Command.php at line 781

我试过更改列详细信息和其他几个位都无济于事,我想知道是否有人以前遇到过这个问题并找到了解决方案,因为我什么也找不到!

最佳答案

我有同样的问题,但使用 batchInsert() 解决了这个问题。此方法将正确转义列名,并绑定(bind)要插入的值。

请查看引用 http://www.yiiframework.com/doc-2.0/yii-db-migration.html#batchInsert()-detail

如何在以下迁移中使用 batchInsert() 方法的一个很好的例子:

https://github.com/wartron/yii2-account-rbac-uuid/blob/master/migrations/m150823_001311_create_default_roles.php

源代码可能是这样的:

public function up()
{
$columns = ['name', 'type', 'description'];
$this->batchInsert('{{%auth_item}}', $columns, [
[
'admin',
1,
'Role Admin',
],
[
'backend',
1,
'Role Backend',
],
[
'user',
1,
'Role User',
],
]);
}

关于php - Yii2 RBAC GII 完整性约束违反,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33058000/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com