Задать вопрос

Как указать dataProvider при использовании TbGridView дополнения yii-booster?

Выбор из БД такой:
$data = Players::model()->findAll('Member=:Member',array(':Member'=>5));

Если указать dataProvider => $data, то выскакивает ошибка, что нет метода getData.
  • Вопрос задан
  • 3321 просмотр
Подписаться 2 Оценить Комментировать
Решения вопроса 1
@Nc_Soft
Так и тащите датапровайдером из базы
$criteria = new CDbCriteria;
$criteria->compare('Member', 5);
$dataProvider = new CActiveDataProvider('Player', array(
    'criteria' => $criteria,
    'pagination' => false
));
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@duke_nu
'dataProvider'=>$model->search(),
	'filter'=>$model,


в контроллере:
$model=new Model('search');
         $model->unsetAttributes();  // clear any default values
        if (isset($_GET['Model']))
            $model->attributes = $_GET['Model'];
        
        if (isset($_GET['ajax'])) 
           {
       
        $this->renderPartial('_modelgrid',array(
            'model'=>$model,
          ));
        Yii::app()->end();
           }
       else
         
      $this->render('index',array('model'=>$model));


В моделе:
Если модель генерируете генератором то метод search(). будет по дефолту
если нет, то метод search() должен возращать :
return new CActiveDataProvider($this, array(
			'criteria'=>$criteria,
		));

в $criteria CDbCriteria
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы