Yii tabular form

<?php
/****** controller *********/

	public function actionCreate()
	{
		$model=new Products;
                
		$attribute_values = array();
		$count = ProductsAttribute::getCount();
		for ($index = 0; $index < $count; $index++) {
			$attribute_values[]=new ProductsAttributeValue();
		}

		if(isset($_POST['Products']))
		{
				$model->attributes=$_POST['Products'];            
				if ($model->save()) {
				// после save потому что нужен $model->id. 
				// для валидации всей формы код валидации атрибутов добавить до $model->save()
				if(isset($_POST['ProductsAttributeValue']))
				  {
					  $valid=true;
					  foreach($attribute_values as $i=>$attribute_value)
					  {
						  if(isset($_POST['ProductsAttributeValue'][$i]))
						  $attribute_value->attributes=$_POST['ProductsAttributeValue'][$i];
						  $attribute_value->product_id = $model->id; // нужно для валидации
						  //$valid=$attribute_value->validate() && $valid;
						  $valid=$attribute_value->validate();
						  if($valid) {
						  $attribute_value->save();
						  }
					  }
				  }
					$this->redirect($model->url);
				}
          }

		$this->render('create',array(
			'model'=>$model,
                        'attribute_values' => $attribute_values,
		));
	}
	
/****** controller *********/

	public function actionUpdate($id)
	{
		$model=$this->loadModel($id);
                
		$attribute_values = ProductsAttributeValue::model()->findAllByAttributes(array('product_id' => $model->id));
		$count = ProductsAttribute::getCount();
		$count_attribute_values = count($attribute_values);
		if ($count_attribute_values < $count) {
			for ($index = $count_attribute_values; $index < $count; $index++) {
				$attribute_values[] = new ProductsAttributeValue();
			}
		}

		if(isset($_POST['Products']))
		{
			$model->attributes=$_POST['Products'];
			if ($model->save()) {
			// после save потому что нужен $model->id. 
			// для валидации всей формы код валидации атрибутов добавить до $model->save()
			if(isset($_POST['ProductsAttributeValue']))
			  {
				  $valid=true;
				  foreach($attribute_values as $i=>$attribute_value)
				  {
					  if(isset($_POST['ProductsAttributeValue'][$i]))
					  $attribute_value->attributes=$_POST['ProductsAttributeValue'][$i];
					  $attribute_value->product_id = $model->id; // нужно для валидации
					  //$valid=$attribute_value->validate() && $valid;
					  $valid=$attribute_value->validate();
					  if($valid) {
					  $attribute_value->save();
					  }
				  }
			  }
				$this->redirect($model->url);
			}
		}

		$this->render('update',array(
			'model'=>$model,
                        'attribute_values' => $attribute_values,
		));
	}
	
/****** view *********/
    <?php foreach ($attribute_values as $i => $attribute_value) : ?>
    <div class="row">    
	<?php echo $form->dropDownList($attribute_value,"[$i]attribute_id", ProductsAttribute::getAttributeList(), array('empty' => '-- Выбрать атрибут --')); ?>
	<?php echo $form->textField($attribute_value,"[$i]value",array('size'=>35,'maxlength'=>55)); ?>
	</div> 
	<?php endforeach; ?>