Witam,
Jestem bardzo początkujący jeśli chodzi o Yii. Do poprawienia mam pewną aplikację, ale natknąłem się na problem nie do obejścia. Istnieje tabela product, category i products_category. W modelach Product i Category oczywiście istnieją odpowiednie relacje (MANY_MANY), gdyż jeden produkt może być przypisany do wielu kategorii i na odwrót.
Produkty wyświetlane są poprawnie, natomiast problem pojawia się w panelu administratora. Akcja Admin wyświetla listę produktów. Dotychczas produkt przypisany był do jednej kategorii i rozwiązane to było jednym polem ‘category_id’ w tabeli product.
Teraz przy wyświetlaniu produktów w kolumnie ‘kategorie’ muszę wyświetlić wszystkie kategorie, a nie tylko jedną. Na chwilę obecną wygląda to tak:
actionAdmin():
public function actionAdmin()
{
$dataProvider=new CActiveDataProvider('Product', array(
'criteria'=>array(
'condition'=>'t.category_id=category.id',
'with'=>'category',
'order'=>'t.sort_order ASC, t.id DESC',
'together'=>true
)
));
$this->render('admin',array(
'dataProvider'=>$dataProvider,
));
}
widok admin.php
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'product-grid',
'dataProvider'=>$dataProvider,
'columns'=>array(
'id',
'name',
array(
'name'=>'image',
'type'=>'html',
'value'=>"CHtml::link(CHtml::image(Yii::app()->request->baseUrl.'/'.Product::IMAGES_PATH.'small/'.\$data->image, \$data->image), Yii::app()->request->baseUrl.'/'.Product::IMAGES_PATH.'big/'.\$data->image, array('class'=>'inline'))",
//'filter'=>false,
),
array(
'name'=>'category.name_pl',
),
W jaki sposób w polu ‘value’ dla kategorii wylistować wszystkie kategorie korzystając z widgetu CGridView?
Z góry dzięki za pomoc.