- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
到处找这个,一无所获。
我正在使用 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() 方法的一个很好的例子:
源代码可能是这样的:
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/
我总是设置表前缀 - 对于这篇文章,可以说我的前缀是 abc_ . 所以在 common\config\main-local.php .我有: 'components' => [ 'db' => [
我正在学习 Yii,我想知道我是否使用 Gii 生成模型和 CRUD 文件,然后我手动修改了这些文件,然后我更改了数据库,我应该再次运行 Gii 吗?它会覆盖我在模型文件中的更改吗?如果是这样,更新我
我正在使用 Yii 并且有一个插件 YiiExcel。加载此插件时,Gii 不起作用。我的 index.php //do not run app before register YiiExcel au
我正在研究使用 Gii 生成模型的 Yii2。我想做的是自定义我的模型,使它们都具有以下功能 public static function getFoobarList() { $models
这个问题在这里已经有了答案: does gii automatically create relations for generated models? (2 个答案) 关闭 9 年前。 我是 Yi
我正在使用 PHP Yii Framework 开发网站,我现在正在堆栈中,我需要启动 gii,但我无法执行此操作。当我输入 www.example.com/index.php/gii 或 www.e
我正在为我的项目使用 Yii 1.13 框架,我需要“gii”代码生成器,但我想将其限制为仅供管理员用户使用,我该如何实现? 最佳答案 按照以下步骤操作:- 从 system.gii 复制 gii 模
我刚刚使用 Gii 生成了一个名为 gig 的新模块。使用 Gii 生成模块代码后,我更新了 config/main.php 文件以包含“gig”模块,如下所示: 'import'=>array(
嗨,我从来没有遇到过这种类型的问题。当我做错时请澄清我。我试图生成 2 个有关系的模型,但它没有出现在模型中。这是 Db 结构。 CREATE TABLE IF NOT EXISTS `propert
我想按照我自己的模板更改 Gii 模板,我在其中找到了要更改的代码 ....成为我自己的模板风格?? 我已经按照我的风格更改了大部分 gii 模板样式,但我还没有找到更改“div”错误消息的行:fra
我是 yii 框架的新手。在我的站点 gii 中显示错误 错误 403您无权访问此页面。 我在配置文件中这样设置gii 'gii'=>array( 'class'=>'system.gii.G
首先,我的详细信息(我尽量包括在内): PHP 5.6.14 Oracle DB11G Enterprise Edition 11.2.0.1.0(本地安装,默认localhost设置) window
到处找这个,一无所获。 我正在使用 Yii2 的迁移来为 RBAC 添加数据库表,它们创建得很好,仔细检查了所有内容,一切都很好。 我知道你可以用 $author = $auth->createRol
我正在使用 gii 生成器来创建一个模块。 问题是当我尝试为该模块创建表单或某个模型时...... 我不能告诉它在那个模块中生成这些文件......它只在主应用程序文件夹中生成。 有任何想法吗? 谢谢
我有三个模型:Person、Feature 和 PersonFeature。 PersonFeature 是一个具有两个外键的联结表,person_id 引用 person 表中的 id,featur
我正在尝试使用 Yii 的自动代码生成工具 Gii,但它试图引用一堆不存在的 CSS 和 JS 文件。我从头开始尝试多次并每次都设置权限。似乎没有生成文件,但是,确实生成了神秘的命名文件夹。我怎样才能
我正在一个 IP 地址为“xxx.xxx.x.x”的系统中开发一个项目“演示”,该系统来自另一个具有不同 IP 地址的系统。当我尝试使用 gii 时,我收到权限错误。我如何设置在单独的系统中使用gii
当我尝试使用 Gii Controller 生成器时,我得到: file_put_contents(.../gii-1.1.14/ControllerCode.php): failed to open
情况: 昨天我使用 gii 为我的数据库表 (mysql) 生成代码。我意识到我的表需要一个新字段。 问题: 在数据库表中添加新字段的约定是什么?在 mysql 中手动添加新表后,是否有我需要做的事情
在查看其他人的代码、指南、教程等时,我还没有在网上看到过这个。 当我用 Gii 生成模型时,关于关系的函数后面都有一个零。 示例: class Benefit extends \yii\db\Acti
我是一名优秀的程序员,十分优秀!