Отношение многие ко многим

Привет всем. Есть таблицы Cars, Options и cars_options.

В модели Cars указал связи:




...

'options'=>array(self::MANY_MANY, 'Options','Cars_options(cars_id, options_id)')

...



Получил доступ к связанным опциям машин:$model->options.

Вопрос: как вывести массив в view(какой виджет использовать, если я хочу просто вывести списком опции принадлежащие конкретной машине. Пример:кондиционер, литые диски). Пробовал так:




<?php for($i=0;$i<count($model->options);$i++){

    echo $model->options[$i]->option."<br>";

}

?>



, но думаю что так не правильно. :D

Второй вопрос: при создании новой Машины с помощью CheckBoxList вывожу все опции из таблицы Options. Как сохранить отмеченные опции? При сохранении новой Машины обновляется только таблица Cars, а необходимо чтобы вспомогательная таблица cars_options тоже обновилась.




<ul>

<?php foreach($model->options as $option) : ?>

  <li><?php echo $option; ?></li>

<?php endforeach; ?>

</ul>



спасибо. Этот вопрос снимается. Как насчет добавления записей?

Ну например можно так:




public function actionCreate() {

  $model = new Cars();

  if(isset($_POST['Cars']) && isset($_POST['Options'])) {

    $model->attributes = $_POST['Cars'];

    if($model->validate()) {

      $model->save();

      foreach($_POST['Options'] as $option) {

        // сохраняем новую опцию

        $newOption = new Options();

        $newOption->attributes = $option;

        $newOption->save();

        // сохраняем в промежуточной таблице запись

        $relation = new Cars_Options();

        $relation->cars_id = $model->id;

        $relation->options_id = $newOption->id;

        $relation->save();

      }

    }

  }

  $this->render('create', array('model'=>$model));

}



А разве yii не должен сам все обновить?

Нет.

оули шит. А как тут репутацию поднять за хороший ответ? ;)

Плюсиком =)