2016-04-11 2 views
3

戻り値{{%table_name}}とYii2の 'table_name'との間の関数tableName()の違いは何ですか? 1が設定されている場合Yii2 tableName戻り値

public static function tableName(){ 
return {{%admin}}; 
} 



public static function tableName(){ 
return 'admin'; 
} 
+1

'{{%管理}}' "%管理LIKE" リターンまたは管理結果ショーで終わります。 'admin'は' admin'と同じです – GAMITG

+0

ありがとうございます! – rafaa1994

+2

@GAMITGこれはfalseです。 – topher

答えて

5

'{{%admin}}'table prefixで付けられます。 'admin'はできません。

これについての正確な参照は見つかりませんが、\yii\db\ActiveRecord::tableName()のドキュメントとソースコードから推測できます。

Docs:デフォルトでは

この方法は、接頭辞yii\db\Connection::$tablePrefixyii\helpers\Inflector::camel2id()を呼び出すことにより、テーブル名とクラス名を返します。 yii\db\Connection::$tablePrefixが 'tbl_'の場合、 'Customer'は 'tbl_customer'になり、 'OrderItem'は 'tbl_order_item'になります。この表記法の後に表の名前がない場合は、このメソッドをオーバーライドできます。

Source Codeである:

public static function tableName() 
{ 
    return '{{%' . Inflector::camel2id(StringHelper::basename(get_called_class()), '_') . '}}'; 
}