Или Вы можете использовать это:
В модели:
/**
* Get list of choises from collumn SET or ENUM type
*
* @param string $sColumn - col name
* @param string $sTable - if use other table as Model
* @return array
*/
function fGetArrayFromSQLSet($sColumn, $sTable=null) {
# Pokud neni urcena tabulka, pouzij tabulku modelu
if( !$sTable ) {
$sTable= $this->useTable;
}
# Nacti nastaveni daneho pole dane tabulky
$tmpHlaseno=$this->query("SELECT COLUMN_TYPE
FROM information_schema.columns
WHERE TABLE_NAME = '$sTable'
AND COLUMN_NAME = '$sColumn'
"); //db($tmpHlaseno);
$tmpList= $tmpHlaseno[0]['columns']['COLUMN_TYPE'];
# Ziskej hodnoty z nastaveni a uloz je do pole
$sTmp= str_replace(')', '', str_replace('set(', '', str_replace('enum(', '', $tmpList)));
$aTmp= explode(',', str_replace("'", '', $sTmp));
foreach( $aTmp as $value ) {
$aSetList[$value]= $value;
} //db($aSetList);
return $aSetList;
} // END of fGetArrayFromSQLSet
В контроллере:
# TB ENUM fields
$aFields= array('order', '<TB_col_SET_type>', '<TB_col_SET_type>', .... );
foreach ($aFields as $sFieldName ) {
$this->set(Inflector::pluralize(Inflector::variable($sFieldName)), $this->PHlaseni->fGetArrayFromSQLSet($sFieldName) );
}
В поле зрения достаточно:
<?=$form->input('order')?>
<?=$form->input('<TB_col_SET_type>')?>