sql >> データベース >  >> RDS >> Mysql

Yiiで検索とフィルターの基準を追加する方法

    車輪の再発明を試みる代わりに、Yiiが提供するCGridViewウィジェット> 。並べ替えとフィルタリングの機能があります。ドキュメントを確認すると、さまざまな構成で遊ぶことができます。次のコードスニペットは最小限の構成を使用しています。

    ... / 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'
            ),
        ));
        ?>
    

    スーパーマーケットモデルにsearch()関数を実装します。

    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
            ),
        ));
    }
    

    コントローラー/スーパーマーケットコントローラー:。

    public function actionIndex() {
        $model =new Supermarkets('search');
        if(isset($_GET['Supermarkets']))
            $model->attributes =$_GET['Supermarkets'];
    
        return  $this->render('index', array('model'=>$model));
    }
    


    1. データベース接続文字列と照合

    2. php/mysqlのSQLインジェクションを識別するための静的分析ツールはありますか

    3. 1つのクエリで2つのテーブルから行を削除する

    4. OracleのINITCAP()関数