Таблицы в MySQL:
поле:
id pk
опция_поля
id pk
feild_id int(11)
ALTER TABLE `field_option` ADD CONSTRAINT `option_field` FOREIGN KEY ( `feild_id` ) REFERENCES `agahi_fixed`.`field` (
`id`
) ON DELETE CASCADE ON UPDATE RESTRICT;
Модель поля отношений:
return array(
'fieldOption' => array(self::HAS_MANY, 'FieldOption', 'feild_id'),
);
Модель FieldOption отношения:
return array(
'feild' => array(self::BELONGS_TO, 'Field', 'feild_id'),
);
В контроллере:
if(Field::model()->exists('cat_id = :catId', array(":catId"=>$_POST['catid']))){
$criteria=new CDbCriteria;
//$criteria->select='*';
$criteria->condition='cat_id=:catId';
$criteria->params=array(':catId'=>$_POST['catid']);
$criteria->with = 'fieldOption';
$field=Field::model()->findAll($criteria);
header('Content-type: application /json');
$jsonRows=CJSON::encode($field);
echo $jsonRows;
}
но он не работает только с выбранными записями в таблице полей.
Почему?
feild_id
необычно — вероятно, лучше было быfield_id
. - person Jonathan Leffler   schedule 28.12.2014