sql >> Database >  >> RDS >> Mysql

Hoe zoek- en filtercriteria toe te voegen in Yii

In plaats van te proberen het wiel opnieuw uit te vinden, kun je gewoon de door Yii geleverde CGridView-widget . Het heeft de sorteer- en filterfunctionaliteit. Controleer de documentatie en je zult zien dat er veel configuraties zijn waarmee je kunt spelen. Het volgende codefragment gebruikt minimale configuratie.

.../views/supermarkets/index.php:

    <?php
    $this->widget('zii.widgets.grid.CGridView', array(
        'id' => 'supermarkets-grid',
        'dataProvider' => $model->search(),
        'filter' => $model,
        'columns' => array(
            'name',
            'location',
            'telephone',
            'fax',
            'website'
        ),
    ));
    ?>

Implementeer de zoekfunctie () in het supermarktmodel.

public function search()
{

    $criteria=new CDbCriteria;

    $criteria->compare('name',$this->name,true);
    $criteria->compare('location',$this->location,true);
    $criteria->compare('telephone',$this->telephone,true);
    $criteria->compare('fax',$this->fax,true);
    $criteria->compare('website',$this->website,true);

    return new CActiveDataProvider(get_class($this), array(
        'criteria'=>$criteria,
        'sort'=>array(
            'defaultOrder'=>'name ASC',
        ),
        'pagination'=>array(
            'pageSize'=>20
        ),
    ));
}

Controllers/SupermarktenController:.

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

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


  1. Welke functie voor gegevensmaskering moet ik gebruiken?

  2. is het sneller om rijen in de volgorde van de primaire sleutel in te voegen?

  3. Oracle Interviewvragen

  4. Union All en Order By gebruiken in MySQL