2

Q:テーブルのすべてのレコードを取得するにはどうすればよいですか?

ステータス:テーブルのすべてのレコードをエクスポートしたいと思います。これで、テーブルの最初の10レコードをエクスポートできます。どのようにできるのか?

これは私のモデルです

public function dashboard()
    {
        // Warning: Please modify the following code to remove attributes that
        // should not be searched.

        $criteria=new CDbCriteria;
        $criteria->select = 't.*';

        if (Yii::app()->user->checkAccess('Reviewer') || Yii::app()->user->checkAccess('Implementer'))
            $criteria->join   = "JOIN users u ON (t.creator = u.id)";
            if($this->creator):
                $criteria->compare('u.username',$this->creator);
            else:
                if (Yii::app()->user->checkAccess('Creator')):
                    $criteria->compare('t.creator',Yii::app()->user->id);           
            endif;
        endif;

        $criteria->compare('t.request_no',$this->request_no);       
        $criteria->compare('t.description',$this->description,'true');

        if(isset($this->status)):
            $criteria->addSearchCondition('t.status',$this->status, false);
        endif;      

        if (Yii::app()->user->checkAccess('Reviewer')):
            $criteria->addSearchCondition('t.reviewers',Yii::app()->user->id,true, 'OR');
        endif;

        if (Yii::app()->user->checkAccess('Implementer')):
            $criteria->addSearchCondition('t.implementers',Yii::app()->user->id,true, 'OR');
        endif;

        //$criteria->order = ' created_date DESC';

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


        $_SESSION['all'] = $all;


        $data = new CActiveDataProvider(get_class($this), array(
            'pagination'=>array('pageSize'=> Yii::app()->user->getState('pageSize',
                                    Yii::app()->params['defaultPageSize']),),
            'criteria'=>$criteria,
        ));

        $_SESSION['limited'] = $data; // get all data and filtered data :)

        return $data;   
    }

アドバイスありがとうございます

4

3 に答える 3

5

dataprovider のページネーションを無効に設定する必要があります。そのため、属性paginationを falseに設定します

$all = new CActiveDataProvider($this, array(
            'criteria'=>$criteria,
            'pagination'=>false,
        ));
于 2012-11-05T06:35:36.047 に答える
0

私は解決策を見つけました。

$all = new CActiveDataProvider(get_class($this), array(
            'criteria'=>$criteria,
        ));

get_class($ this)は、この問題を解決するための鍵です。

于 2012-11-05T08:36:10.630 に答える
0

Yii2 では、以下は引き続き機能します。

    // query
    $queryMessages = Messages::find()->where([
        'user_id' => Yii::$app->user->identity->patient->id,
    ]);

    // data provider
    $messagesDataProvider = new ActiveDataProvider([
        'query' => $queryMessages,
        'pagination' => false,
    ]);
于 2017-04-05T17:13:59.937 に答える