Сортировка по полю в связанной таблице

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Закрыто
Странник
Сообщения: 272
Зарегистрирован: 2013.04.08, 10:35
Откуда: Нижний Новгород

Сортировка по полю в связанной таблице

Сообщение Странник » 2018.04.12, 00:22

Добрый день друзья. 3 года назад запустил проект и отошёл от дел.
Недавно попросили сделать небольшие изменения, но на одном пункте запнулся. Забыл как это делается
Суть такова: Есть три модели: Number (номер маршрута), Partners (данные о покупателе), Order(заказ)

Код: Выделить всё

class Number extends CActiveRecord
{
...
	public function rules()
	{
		return array(
			array('id_paper, number, date, id_format, id_color', 'required'),
			array('id, number, date', 'safe', 'on'=>'search'),
		);
	}
	public function relations()
	{
		return array(
			'orders' => array(self::HAS_MANY, 'Orders', 'number_id'),
		);
	}
	...
}

Код: Выделить всё

class Orders extends CActiveRecord
{
	public function rules()
	{
		return array(
			array('number_id, date, partner_id', 'required'),
			array(' number_id, date, partner_id', 'safe', 'on'=>'search'),
		);
	}
	public function relations()
	{
		return array(
	            'number' => array(self::BELONGS_TO, 'Number', 'number_id'),
			'partner' => array(self::BELONGS_TO, 'Partners', 'partner_id'),
		);
	}

Код: Выделить всё

class Partners extends CActiveRecord
{
	public function rules()
	{
		return array(
			array('title', 'required'),
			array('id, title', 'safe', 'on'=>'search'),
		);
	}
	public function relations()
	{
		return array(
			'orders' => array(self::HAS_MANY, 'Orders', 'partner_id'),
		);
	}
Нужно получить для конкретного Маршрута Заказы, отсортированные по имени Покупателя.
Сортировка по любому полю модели Orders работает, а вот по полю partner.name никак не могу сделать.
Может кто сталкивался подобным?
Код контроллера (заремарины различные попытки - все неудачные):

Код: Выделить всё

	public function actionOrder()
	{
		$dataProvider=new CActiveDataProvider('Orders', array(
			'criteria'=>array(
				'with'=>array('partner'),
				'together'=>false,
				'condition'=>'number_id =:number',
				'params'=>array(':number'=>$id),
//				'order'=>'partner.name ASC',
			),
            'sort' => array(
                'attributes' => array(
                    'partner' => array(
                        'asc' => 'partner.name ASC',
                        'desc' => 'partner.name DESC',
                        'default' => 'ASC',
                    ),
                ),
                'defaultOrder' => array(
                    'partner' => CSort::SORT_ASC,
                )
            ),
		)); 
		$this->render('order',array(
			'model'=>$model,
			'dataProvider'=>$dataProvider,
		));
	}

Странник
Сообщения: 272
Зарегистрирован: 2013.04.08, 10:35
Откуда: Нижний Новгород

Re: Сортировка по полю в связанной таблице

Сообщение Странник » 2018.04.12, 14:32

Решено. Была ошибка в именовании поля.

Закрыто