Intereting Posts

Как получить все имена таблиц и столбцов из базы данных в Yii Framework

Я работаю над модулем, где я хочу использовать динамическую зависимую выпадающую таблицу и имя столбца.

Ex. Извлеките все имена таблиц и отобразите их в раскрывающихся полях, а после выбора конкретной таблицы я хочу снова отобразить все имя столбца в поле выпадающего списка.

Проблемы:

1) Как получить все имя таблицы из db?

2) и как получить все имя столбца из таблицы?

Я пробовал несколько статей и форумов, таких как http://www.yiiframework.com/forum/index.php/topic/5920-how-can-i-get-the-actual-full-table-name/, но не работал.

Любая помощь будет оценена по достоинству.

благодаря

Это довольно просто, используя экземпляр класса CDbTableSchema :

 echo 'Name: ', $tbl->name, ' (raw: ', $tbl->rawName, ')'; echo 'Fields: ', implode(', ', $tbl->columnNames); 

И так далее. Для этого существует множество методов и свойств
Чтобы получить все таблицы, просто используйте здесь документы класса CDbSchema .

класс CDbSchema имеет как общедоступное свойство tableNames (массив всех tbl namnes), так и свойство tables , содержащее все метаданные. На самом деле все.

Чтобы добраться до всех этих экземпляров, достаточно следующего кода:

 $connection = Yii::app()->db;//get connection $dbSchema = $connection->schema; //or $connection->getSchema(); $tables = $dbSchema->getTables();//returns array of tbl schema's foreach($tables as $tbl) { echo $tbl->rawName, ':<br/>', implode(', ', $tbl->columnNames), '<br/>'; } 

Чтобы создать раскрывающийся список, вы просто используете стандартный объект CHtml :

 $options = array(); foreach($tables as $tbl) {//for example $options[$tbl->rawName] = $tbl->name; } $dropDown = CHtml::dropDownList('tables',$tables[0]->rawName, $options); 

Пожалуйста, потратьте время на чтение руководства , все там. Я не использовал Yii что широко, ну, я не использовал его вообще, если честно, но мне потребовалось всего 5 минут, чтобы это исправить. Просто посмотрите на источник ! У каждого метода / класса / есть ссылка на точную строку в соответствующем файле!
Прежде чем просить других разобраться в чем-то, приложите некоторые усилия .

введите имя столбца из таблицы:

 TableName::model()->getTableSchema()->getColumnNames(); 

Он вернет массив, содержащий все имена столбцов TableName.

выберите все имя столбца и таблицу:

 $fields=Tablename::model()->attributeLabels(); foreach($cont as $key=>$value){ echo "column name : ".$key." and lable ".$value; } 

он отобразит все имя поля и значение lable из модального …..