ホームページ > バックエンド開発 > PHPチュートリアル > Yii フレームワークの find findAll を使用して指定されたフィールドを検索する方法の比較

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

高洛峰
リリース: 2023-03-05 13:30:02
オリジナル
1281 人が閲覧しました

ご存知の通り

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 フレームワークで findAll を検索して、指定されたフィールドを検索する方法を見つけます。 関連記事については、PHP 中国語 Web サイトに注目してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート