Я совершенно новичок в Yii Framework и реляционных базах данных, но мне нужно создать небольшое приложение для контроля партнеров и действий. Партнеры (соц.) Могут иметь много видов деятельности, а виды деятельности могут иметь много партнеров. Итак, вот моя база данных
CREATE TABLE `actividades` (
`id` int(11) NOT NULL,
`nombre` varchar(45) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE `axs` (
`id_socio` int(11) NOT NULL,
`id_acti` int(11) NOT NULL,
KEY `id_socio` (`id_socio`),
KEY `id_acti` (`id_acti`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE `socios` (
`id` int(11) NOT NULL,
`nombre` varchar(45) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
ADD CONSTRAINT `id_socio` FOREIGN KEY (`id_socio`) REFERENCES `socios` (`id`) ON DELETE
CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `id_acti` FOREIGN KEY (`id_acti`) REFERENCES `actividades` (`id`) ON DELETE
CASCADE ON UPDATE CASCADE;
А это отношения моих моделей
**Socios**
public function relations()
{
// NOTE: you may need to adjust the relation name and the related
// class name for the relations automatically generated below.
return array(
'actividadesrel' => array(self::HAS_MANY, 'Actividades', 'id_socio'),
);
}
**Activades**
public function relations()
{
// NOTE: you may need to adjust the relation name and the related
// class name for the relations automatically generated below.
return array(
'sociosrel' => array(self::HAS_MANY, 'Socios', 'id_socio'),
);
}
А это контроллер моего Socio
public function actionCreate()
{
$model=new Socios;
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
if(isset($_POST['Socios']))
{
$model->attributes=$_POST['Socios'];
if($model->save()) {
foreach ($_POST['Socios']['actividadesrel'] as $actividadId) {
$socioActividad = new Axs;
$socioActividad->socio_id = $model->id;
$socioActividad->acti_Id = $actividadId;
if (!$socioActividad->save()) print_r($socioActividad->errors);
}
}
}
$this->render('create',array(
'model'=>$model,
));
}
И, наконец, в моем социальном виде создать
<div class="row">
<?php echo $form->labelEx($model,'Actividades del socio'); ?>
<?php echo $form->dropDownList($model, 'actividadesrel', CHtml::listData(
Actividades::model()->findAll(), 'id', 'nombre'), array('multiple'=>'multiple',
'size'=>5)
); ?>
<?php echo $form->error($model,'actividadesrel'); ?>
</div>
Теперь, каждый раз, когда я пытаюсь создать нового партнера (социально), я получаю это сообщение:
Please fix the following input errors:
ID cannot be blank.
Это сводит меня с ума: P. Я предполагаю, что моя ошибка - очень плохое понимание Yii и ActiveRecord и других дерьмов, связанных с реляционными базами данных.
Вы можете мне помочь?
Спасибо !!!!