Yii Framework Forum: Yii Framework Cgridview Search Çalışmıyor - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Yii Framework Cgridview Search Çalışmıyor

#1 User is offline   İhsanKahramanoğlu 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 2
  • Joined: 20-May 13

Posted 27 May 2013 - 08:32 AM

Öncelikle merhaba,

Yii Framework'e henüz yeni bir kullanıcıyım. CGridView'u kullanarak bir sayfa oluşturdum. Fakat sayfada CGridView'un arama fonksiyonu çalışmıyor. Lütfen yardımcı olun.

Controller:
class DenemeController extends Controller
{
	public function actionIndex()
	{
	   $model = new Newstable('search');
	   $this->render('index',array('model'=>$model));
	}
}



Model Class:
class Newstable extends CActiveRecord
{
    
	/**
	 * Returns the static model of the specified AR class.
	 * @param string $className active record class name.
	 * @return Newstable the static model class
	 */
	public static function model($className=__CLASS__)
	{
		return parent::model($className);
	}

	/**
	 * @return string the associated database table name
	 */
	public function tableName()
	{
		return 'newstable';
	}

	/**
	 * @return array validation rules for model attributes.
	 */
	public function rules()
	{
		// NOTE: you should only define rules for those attributes that
		// will receive user inputs.
		return array(
			array('isim, tarih, kisa, uzun, haberno', 'required'),
			array('haberno', 'numerical', 'integerOnly'=>true),
			// The following rule is used by search().
			// Please remove those attributes that should not be searched.
			array('isim, tarih, kisa, uzun, haberno', 'safe', 'on'=>'search'),
		);
	}

	/**
	 * @return array relational rules.
	 */
	public function relations()
	{
		// NOTE: you may need to adjust the relation name and the related
		// class name for the relations automatically generated below.
		return array(
		);
	}

	/**
	 * @return array customized attribute labels (name=>label)
	 */
	public function attributeLabels()
	{
		return array(
			'isim' => 'Isim',
			'tarih' => 'Tarih',
			'kisa' => 'Kisa',
			'uzun' => 'Uzun',
			'haberno' => 'Haberno',
		);
	}

	/**
	 * Retrieves a list of models based on the current search/filter conditions.
	 * @return CActiveDataProvider the data provider that can return the models based on the search/filter conditions.
	 */
	public function search()
	{
		// Warning: Please modify the following code to remove attributes that
		// should not be searched.

		$criteria=new CDbCriteria;

		$criteria->compare('t.isim',$this->isim,true);
		$criteria->compare('t.tarih',$this->tarih,true);
		$criteria->compare('t.kisa',$this->kisa,true);
		$criteria->compare('t.uzun',$this->uzun,true);
		$criteria->compare('t.haberno',$this->haberno);

        
		return new CActiveDataProvider($this, array(
			'criteria'=>$criteria,
		));
	}
}


View:
$this->widget('zii.widgets.grid.CGridView', array(
        'dataProvider'=>$model->search(),
        'filter'=>$model,
        'columns'=> array(
                array(
                        'name'=>'isim',
                ),
                array(
                        'name'=>'tarih',
                ),
                array(
                        'name'=>'kisa',
                ),
                array(
                        'name'=>'uzun',
                ),
                array(
                        'name'=>'haberno',
                ),
        
        )
    ));

1

#2 User is offline   McQueen 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 118
  • Joined: 13-August 11
  • Location:Istanbul/Turkey

Posted 27 May 2013 - 05:22 PM

View PostİhsanKahramanoğlu, on 27 May 2013 - 08:32 AM, said:

Öncelikle merhaba,

Yii Framework'e henüz yeni bir kullanıcıyım. CGridView'u kullanarak bir sayfa oluşturdum. Fakat sayfada CGridView'un arama fonksiyonu çalışmıyor. Lütfen yardımcı olun.

Controller:
class DenemeController extends Controller
{
	public function actionIndex()
	{
	   $model = new Newstable('search');
	   $this->render('index',array('model'=>$model));
	}
}



Model Class:
class Newstable extends CActiveRecord
{
    
	/**
	 * Returns the static model of the specified AR class.
	 * @param string $className active record class name.
	 * @return Newstable the static model class
	 */
	public static function model($className=__CLASS__)
	{
		return parent::model($className);
	}

	/**
	 * @return string the associated database table name
	 */
	public function tableName()
	{
		return 'newstable';
	}

	/**
	 * @return array validation rules for model attributes.
	 */
	public function rules()
	{
		// NOTE: you should only define rules for those attributes that
		// will receive user inputs.
		return array(
			array('isim, tarih, kisa, uzun, haberno', 'required'),
			array('haberno', 'numerical', 'integerOnly'=>true),
			// The following rule is used by search().
			// Please remove those attributes that should not be searched.
			array('isim, tarih, kisa, uzun, haberno', 'safe', 'on'=>'search'),
		);
	}

	/**
	 * @return array relational rules.
	 */
	public function relations()
	{
		// NOTE: you may need to adjust the relation name and the related
		// class name for the relations automatically generated below.
		return array(
		);
	}

	/**
	 * @return array customized attribute labels (name=>label)
	 */
	public function attributeLabels()
	{
		return array(
			'isim' => 'Isim',
			'tarih' => 'Tarih',
			'kisa' => 'Kisa',
			'uzun' => 'Uzun',
			'haberno' => 'Haberno',
		);
	}

	/**
	 * Retrieves a list of models based on the current search/filter conditions.
	 * @return CActiveDataProvider the data provider that can return the models based on the search/filter conditions.
	 */
	public function search()
	{
		// Warning: Please modify the following code to remove attributes that
		// should not be searched.

		$criteria=new CDbCriteria;

		$criteria->compare('t.isim',$this->isim,true);
		$criteria->compare('t.tarih',$this->tarih,true);
		$criteria->compare('t.kisa',$this->kisa,true);
		$criteria->compare('t.uzun',$this->uzun,true);
		$criteria->compare('t.haberno',$this->haberno);

        
		return new CActiveDataProvider($this, array(
			'criteria'=>$criteria,
		));
	}
}


View:
$this->widget('zii.widgets.grid.CGridView', array(
        'dataProvider'=>$model->search(),
        'filter'=>$model,
        'columns'=> array(
                array(
                        'name'=>'isim',
                ),
                array(
                        'name'=>'tarih',
                ),
                array(
                        'name'=>'kisa',
                ),
                array(
                        'name'=>'uzun',
                ),
                array(
                        'name'=>'haberno',
                ),
        
        )
    ));




sorun controllerda

public function actionIndex()
	{
	   $model = new Newstable('search');
           $model->unsetAttributes();
	   if(isset($_GET['Newstable']))
	        $model->attributes=$_GET['Newstable'];

	   $this->render('index',array('model'=>$model));
	}

1

#3 User is offline   İhsanKahramanoğlu 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 2
  • Joined: 20-May 13

Posted 28 May 2013 - 01:33 AM

View PostMcQueen, on 27 May 2013 - 05:22 PM, said:

sorun controllerda

public function actionIndex()
	{
	   $model = new Newstable('search');
           $model->unsetAttributes();
	   if(isset($_GET['Newstable']))
	        $model->attributes=$_GET['Newstable'];

	   $this->render('index',array('model'=>$model));
	}



Teşekkürler. Yazdığınız kodu ekleyince arama işlemi çalıştı. İlginiz için teşekkür ederim.
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users