Как получить столбцы после реляционного запроса

Привет, всем!

Есть 3 таблицы :

Отношения в модели Product такие :




public function relations()

	{

		return array(

			'attribute_values' => array(self::HAS_MANY, 'AttributeValue', 'product_id'),

		);

	}



В AttributeValue такие :




	public function relations()

	{

		return array(

			'attribute' => array(self::BELONGS_TO, 'Attribute', 'attribute_id'),

			'product' => array(self::BELONGS_TO, 'Product', 'product_id'),

		);

	}



В Attribute такие :


	public function relations()

	{

		return array(

			'attribute_values' => array(self::HAS_MANY, 'AttributeValue', 'attribute_id'),

		);

	}

Выполняю такой код :




$product_id = 1;

$criteria = new CDbCriteria;

$criteria->condition = 't.id='.$product_id;

$criteria->with = array(

  'attribute_values.attribute'

);

$attributes=Product::model()->find($criteria);


foreach($attributes as $attribute)

      $arr[] = array(

   'id'=>// Здесь необходимо получить Product.id

   'name'=>// Здесь необходимо получить Attribute.name

   'value'=>// Здесь необходимо получить AttributeValues.value

        );



Нужно вытащить все названия атрибутов из Attribute.name и их значения из AttributeValues для определенного продукта.

Как можно получить столбцы Product.id, Attribute.name, AttributeValues.value в данном цикле?

Спасибо.

Product.id = $attribute->id

Attribute.name = $attribute->attribute->name

AttributeValues.value = $attribute->attribute_values->name

а вообще пользуйтесь дампом что бы увидеть какая структура на выходе.

Использовал такое решение :




$product = Product::model()->findByPk($product_id);

$attributes = array();

foreach($product->attribute_values as $attribute_value){

  $attributes[] = array(

    'id'=>$product->id,

    'name'=>$attribute_value->attribute->name,

    'value'=>$attribute_value->value,

  );

}