无论如何我们可以在yii 2中更改RBAC表名吗?
我将authManager配置如下,
'authManager' => [
'class' => 'yii\rbac\DbManager',
'assignmentTable'=> '{{%AuthAssignment}}',
'itemChildTable'=> '{{%AuthItemChild}}',
'itemTable'=> '{{%AuthItem}}',
'ruleTable'=> '{{%AuthRule}}',
'defaultRoles' => ['guest'],
],
现在我需要知道如何自定义列名。 yii默认查询默认列名,所以我收到此错误。
Column not found: 1054 Unknown column 'rule_name' in 'field list'
下面是我的表结构与yii 2默认RBAC表的不同之处。
CREATE TABLE IF NOT EXISTS `AuthRule` (
`name` varchar(64) NOT NULL,
`data` text,
`createdAt` int(11) DEFAULT NULL,
`updatedAt` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `AuthItemChild` (
`parent` varchar(64) NOT NULL,
`child` varchar(64) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `AuthItem` (
`name` varchar(64) NOT NULL,
`type` int(11) NOT NULL,
`description` text,
`ruleName` varchar(64) DEFAULT NULL,
`data` text,
`createdAt` int(11) DEFAULT NULL,
`updatedAt` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `AuthAssignment` (
`itemName` varchar(64) NOT NULL,
`userId` varchar(64) NOT NULL,
`createdAt` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
答案 0 :(得分:4)
用于高级模板
在你的config / main.hp
中在组件部分
h1 {margin:0px}
根据您的需要使用适当的课程
在这种情况下,我使用供应商authmanager,但你可以使用标准的uncommeting标准'components' => [
'authManager' => [
//'class' => 'yii\rbac\DbManager',
'class' => 'vendor\yourVenderName\auth\models\DbManager',
'cache' => 'cache',
//these configuratio allow to rename the auth table
'itemTable' => 'my_auth_item',
'assignmentTable' => 'my_auth_assignment',
'itemChildTable' => 'my_auth_item_child',
'ruleTable' => 'my_auth_rule',
],
....
],
和commetting供应商