user.php的tableName为何这么奇怪?

新手提问 · kfc · 于 3年前 发布 · 2861 次阅读
public static function tableName()
{
    return '{{%user}}';
}
这是common/models/User.php中的函数.
为什么不是return 'user'呢? 为什么要加上{{%?
求大神解惑.

共收到 3 条回复 代码
Outshine#13年前 3 个赞
function tableName(){
    //这个会自动加数据库前缀
    return '{{%user}}';
    //这个并不会
    return 'user';
}
kfc#23年前 0 个赞

哦, 谢谢.
http://www.getyii.com/doc-2.0/guide/db-dao.html 中提到

"表名有个专用的变体 {{%Y}} ,如果设置了表前缀使用该变体可以自动在表名前添加前缀"

{{%Y}}是sql的语法吗? 貌似没在sql的手册中找到. 或者说这是YII自己定义的?

kfc#33年前 0 个赞

原来这是YII自定义的功能, 不是sql的语法.

{{用来表示quoting, 在\yii\db\Schema的quoteSql()中实现.
%会被替换成table prefix, 在\yii\db\Connection的quoteSql()中实现.

添加回复 (需要登录)
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册