2.0.13版本有出现rule验证报错 [ 2.0 版本 ]
2.0.13版本有出现rule验证报错吗?
['username', 'unique', 'targetClass' => 'rbac\models\User', 'message' => '用户名已存在.']
model tableName
public static function tableName()
{
preg_match("/dbname=([^;]+)/i", static::getDb()->dsn, $matches);
return $matches[1] . '.{{%user}}';
}
error
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '{dhw_user.`dhw_user`}}.`username`='admin'))' at line 1The SQL being executed was: SELECT EXISTS(SELECT * FROM dhw_user.`dhw_user` WHERE ({{dhw_user.`dhw_user`}}.`username`='admin'))
晦涩de咚 补充于 2017-11-17 09:47
修改成这样就可以了:
public static function tableName()
{
preg_match("/dbname=([^;]+)/i", static::getDb()->dsn, $matches);
// return $matches[1] . '.{{%user}}';
return $matches[1] . '.dhw_user';
}
补充:请教如何友好的增加查询语句中表明前增加所属库名;Db.tableName
格式
共 1 个回答
-
johnny1991 回答于 2017-11-16 18:01 举报
把你这个换成return 字符串,你看可以吗?
public static function tableName() { preg_match("/dbname=([^;]+)/i", static::getDb()->dsn, $matches); return $matches[1] . '.{{%user}}'; }
共 1 条回复
晦涩de咚
注册时间:2015-08-03
最后登录:2020-09-04
在线时长:356小时20分
最后登录:2020-09-04
在线时长:356小时20分
- 粉丝36
- 金钱13598
- 威望340
- 积分20558