2016-04-11 14 views
3

Können Sie mir sagen, was der Unterschied zwischen Funktion tableName() in der Klasse ist, den Wert zurückgeben {{% table_name}} und ‚table_name‘ in Yii2 ??Yii2 Tabellenname Rückgabewert

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



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

'{{% Admin}}' return "LIKE% admin" oder mit Admin-Ergebnis zeigen beenden. und 'admin' zeigen gleich 'admin' – GAMITG

+0

Vielen Dank! – rafaa1994

+2

@GAMITG das ist falsch. – topher

Antwort

5

'{{%admin}}' wird mit dem table prefix vorangestellt werden, wenn man gesetzt ist. 'admin' wird nicht.

Ich kann keine Referenz genau finden, aber es kann aus der Dokumentation und dem Quellcode für \yii\db\ActiveRecord::tableName() abgeleitet werden.

Docs:

standardmäßig diese Methode den Klassennamen als Tabellennamen zurückgibt von yii\db\Connection::$tablePrefixyii\helpers\Inflector::camel2id() mit Vorwahl telefonieren. Wenn yii\db\Connection::$tablePrefix 'Tbl_' ist, 'Kunde' wird 'tbl_customer' und 'OrderItem' wird zu 'tbl_order_item'. Sie können diese Methode überschreiben, wenn die Tabelle nicht nach dieser Konvention benannt ist.

Source Code ist:

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