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() { 'criteria'=>array( 'condition'=>'t.category_id=category.id', 'with'=>'category', 'order'=>'t.sort_order ASC, t.id DESC', 'together'=>true ) )); 'dataProvider'=>$dataProvider, )); }
widok admin.php:
'id'=>'product-grid', 'dataProvider'=>$dataProvider, 'columns'=>array( 'id', 'name', '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, ), '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.