Quantcast
Channel: Yii Framework Forum
Viewing all articles
Browse latest Browse all 18717

Сортировка Связанных Моделей

$
0
0
Доброй ночи. Надеюсь на Вашу помощь.

Есть модель Order, у которой есть relation orderItems (HAS_MANY).
Во view делаю вывод данных модели Ордер, а ниже с помощью CGridView вывод данных всех связанных OrderItems.
Нужно сделать сортировку этих самых OrderItems по их полям, но чето никак не могу допереть как (уже 2-й час ночи).

Код такой:

class Order extends CActiveRecord{
   ...
   	public function rules()
	{
		return array(
			...
			array('id, status_id, updated_date, orderItems', 'safe', 'on'=>'search'),
		);
	}
   ...
        public function relations()
	{
	        return array(
                    'orderItems' => array(self::HAS_MANY, 'OrderItem', array('order_id'=>'id')),
		);
	}
   ...
        public function search()
	{
		$criteria=new CDbCriteria;
                $criteria->with = array('orderItems');
        
		return new CActiveDataProvider($this, array(
			'criteria'=>$criteria,
                        'sort'=>array(
                            'attributes'=>array(
                                 'orderItems'=>array(
                                     'asc'=>'orderItems.prod_id',
                                     'desc'=>'orderItems.prod_id DESC',
                                 ),
                            ),
                        ),
		));
	}
}

class OrderController extends Controller{
    ...
        public function actionView($id)
	{
            $order=new Order('search');
            $model=$order->with("orderItems")->findByPk($id);
	    $this->render('view',array(
		    'model'=>$model,
	    ));
	}
    ...
}


view.php:
...
$this->widget('bootstrap.widgets.TbDetailView', array(
    'data'=>$model,
    'attributes'=>array(
        array('name'=>'id', 'label'=>'ID'),
        array('name'=>'status.name', 'label'=>'Status'),
        array('name'=>'updated_date', 'label'=>'Updated'),
        array('name'=>'created_date', 'label'=>'Created'),
    ),
));

$columns = array(
	array(
		'name'=>'id',
		'header'=>'Item ID',
		'type'=>'raw',
	),
        array(
		'name'=>'prod_id',
		'header'=>'Product',
		'type'=>'raw',
	),
};

$dataProvider=new CActiveDataProvider('OrderItem', array('data'=>$model->orderItems));

$this->widget('bootstrap.widgets.TbGridView', array(
	'dataProvider'=>$dataProvider,
	'template'=>'{items}',
	'emptyText'=>'',
	'columns'=>$columns,
));



Линк сортировки в табличке получается вот такой: index.php?r=order/view&id=2&OrderItem_sort=prod_id&ajax=yw1
Но сортировать табличку никак не получаеться.

Помогите.

Viewing all articles
Browse latest Browse all 18717

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>