CGridView

Прочитал тонну топиков по CGridView, но толком почти ничего и не сделал. В общем есть две модели связанные марки машин(Brands) и модели машин(Models). У моделей есть поле brand_id которое связано с id в модели марки. Нужно сделать так что бы при выводе в гриде моделей, автоматически подставлялось имя марки вместо id-шника. Это у меня получилось, но почему то пагинатор нормально не работает, при нажатии допустим третьей страницы получаем такой url

site.ru/cms/dB/show/requestParams/Models_page/3

Тут же нажимаем 4-ую страницу и получаем вот такой url

site.ru/cms/dB/show/requestParams/Models_page/4/requestParams/Models_page/3/

ну и так далее, url все время растет.

Тоже самое происходит когда пытаешься отфильтровать по какому-нибудь столбцу, там воообще с url что-то странное

site.ru/cms/dB/show?Models[id]=&Models[name]=patrol&Models[brand_search]=&Models_page=1

Вот так настроена модель Models


	

	public function rules()

    {

		$parentRules = parent::rules();

        $rules = array(

			array( 'id, name,brand_search', 'safe', 'on'=>'search' ),

        );

		return array_merge($parentRules, $rules);

    }

	

	public function search()

	{

		$criteria = new CDbCriteria;

		$criteria->with = array('brand');

		$criteria->compare( 'brand.name', $this->brand_search, true );

		

		return new CActiveDataProvider( 'Models', array(

			'criteria'=>$criteria,

			'sort'=>array(

				'attributes'=>array(

					'brand_search'=>array(

						'asc'=>'brand.name',

						'desc'=>'brand.name DESC',

					),

					'*',

				),

			),

			'pagination' => array(

				'pageSize' => Yii::app()->params['perPage'],

			),

		));


	}



Это контроллер




	public function actionShow()

	{

		$model = new Models;

		$this->render('show', array(

			'model'=>$model,

		));

	}



Это вьюха




	$this->widget('zii.widgets.grid.CGridView', array(

    'dataProvider'=>$model->search(),

    'filter'=>$model,

	'ajaxUpdate' => false,

    'columns'=>array(

        'id',

        'name',

        array( 'header'=>'Марка', 'name'=>'brand_search', 'value'=>'$data->brand->name' ),

        array(

            'class'=>'CButtonColumn',

        ),

    ),



Где я чего не так сделал?


  return array_merge($parentRules, $rules);

может быть что то не то наследуешь в правилах?

Да не тут вроде все норм, убрал наследуемые рулсы, ничего не изменилось. Как я понимаю тут вся проблема в обработке урл, потому и не работает грид нормально. Вот только понять не могу что не так, почему он урл ставит такие странные

Я тоже ничего не пойму. А если убрать столбец


array( 'header'=>'Марка', 'name'=>'brand_search', 'value'=>'$data->brand->name' ),

и/или упоминания о связанной таблице в search(), проблема исчезнет? Может она и не из-за связи?

Да проблема осталась даже убрав эту строку. Копаю UrlManager