php - YII2 MODEL获取表字段方式
YII2中,MODEL获取表字段作为属性的方式是使用“SHOW FULL COLUMNS FROM TABLE”,而不是直接写在MODEL中。这样不时读数据库信息,这种额外开销感觉没必要,毕竟表结果不经常修改的。是基于什么原因使用这种方式呢?
1 2 3 4 5 6 7 8 9 10 11 12 13 | <code> protected function loadTableSchema( $name )
{
$table = new TableSchema;
$this ->resolveTableNames( $table , $name );
if ( $this ->findColumns( $table )) {
$this ->findConstraints( $table );
return $table ;
} else {
return null;
}
}</code>
|
1 2 3 4 5 6 7 8 | <code> protected function findColumns( $table )
{
$sql = 'SHOW FULL COLUMNS FROM ' . $this ->quoteTableName( $table ->fullName);
try {
$columns = $this ->db->createCommand( $sql )->queryAll();
}
.........
}</code>
|
怪我咯2839 Tage vor696