ホームページ  >  記事  >  バックエンド開発  >  Yii フレームワークの findfindAll を使用して指定されたフィールドを検索する方法の比較

Yii フレームワークの findfindAll を使用して指定されたフィールドを検索する方法の比較

高洛峰
高洛峰オリジナル
2017-01-21 11:40:49933ブラウズ

ご存知の通り

modelName::model() -> find() // 見つかったのはオブジェクトです
modelName::model() -> findALL() // 見つかったのはオブジェクトの配列ですコレクション
すべてのフィールドのデータではなく、必要なフィールドのデータを見つける方法は?

テストした結果、動作することがわかったので、この方法でも find を操作できます

$criteria = new CDbCriteria;
$criteria->select = 'username,id,email';
$criteria->order = 'id DESC';
$users = modelName::model()->findAll( $criteria );

もちろん、これを行うのは絶対に安全ではありませんが、次のメソッドで置き換えることもできます

$users = modelName::model()->findAll(array(
  'select' =>array('username','id','email'),
  'order' => 'id DESC',
));

同様に、findAll でテストすることもできます。結論

このメソッドは、必要なデータを簡単に取得できます。もちろん、ページネーションが必要な場合は、引き続き次の CDbCriteria を作成する必要があります

たとえば、 videoinfo テーブルの 'v_id'、'title'、'big_class'、'sub_class'、'upload_time'、'comment_num' などのフィールド、条件は status=1、lastmodifytime を逆順にたどって 3 つだけを取り出すコメントアウトした行は、変数を渡すことができ、プレースホルダーで表されます。たとえば、変数に従って条件付きでステータスを割り当てる必要がある場合は、コメント行に値を割り当てることができます。次に、条件条件に

$user = modelName::model()->find(array(
  'select' =>array('username','id','email'),
  'order' => 'id DESC',
  'condition' => 'id='.$id,
));

を記述します。

この方法で、$result 変数を取得します。取得した結果は、トラバースする必要があるオブジェクトのリストです。

$users = $this->user->find(array(
  'select'=>array('id','username','email'),
  'order' => 'id DESC',
  'condition' => 'state=:state AND id=:id',
  'params' => array(':state'=>'1',':id' => '2'),
));

たとえば、次のようにします。各フィールドを表示するには、

$criteria = new CDbCriteria() ;
$criteria -> select = array('v_id','title','big_class','sub_class','upload_time','comment_num');    
$criteria -> condition = 'status = 1';
$criteria -> order = 'lastmodifytime desc';
$criteria -> limit = 3;
 $criteria ->params = array (':status' => $你的变量) ;
$result = VideoInfo::model()->findAll($criteria);

などと入力するだけです

それを受け取った後、CPagination クラスを CDbCriteria クラスと組み合わせることができます。ページングをサポートするためにフロントエンド ページング プラグインと一緒に使用されます:

$criteria -> condition = 'status = :status';
foreach ($result as $ob){
      print_r($ob->attributes);
 }

Yii フレームワークで指定されたフィールドを検索する findfindAll メソッドの比較をさらに詳しくするには、PHP 中国語 Web サイトの関連記事に注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。