ホームページ  >  記事  >  バックエンド開発  >  Yii CDbCriteria_PHP チュートリアル

Yii CDbCriteria_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:28:59944ブラウズ

注: $c = new CDbCriteria(); は、マニュアルの DAO (PDO) とクエリ ビルダーの代わりに、ActiveRecord をより柔軟にする ActiveRecord の記述方法です。

Yii CDbCriteria の注意点と一般的な使用法をいくつか示します:

1 SQL アセンブリの状況

$criteria = 新しい CDbCriteria

$criteria->addCondition("id=1"); //クエリ条件、つまり id = 1 です

$criteria->addInCondition('id', array(1,2,3,4,5)) //ID IN (1, 23,,4,5,);

$criteria

->addNotInCondition('id', array(1,2,3,4,5));//と全く同じです上記、はい、入っていません

$criteria

->addCondition('id=1','OR');//条件が複数ある場合のOR条件です。は AND ではなく OR です

$criteria

->addSearchCondition('name', 'category');//検索条件は実際に表します。 。ここで、名前は「%category%」のようなものです

$criteria

->addBetweenCondition('id', 1, 4);//1と4の間

$criteria

->compare(

'id', 1); //このメソッドは、パラメータに従って自動的に addCondition または addInCondition に処理されます

$criteria->addCondition(

"id = :id"

);

$criteria->params[':id']=1;

//属性メソッド $criteria

->select =

'id,parentid,name'

;

//クエリされるフィールドを表します。デフォルトの select='*';

$criteria

->join = 'xxx'; //テーブルに参加 ;

$criteria

->with = 'xxx'; //リレーションを呼び出す ;

$criteria

->limit = 10; //データを 1 つ取得します。0 未満の場合は処理は行われません $criteria->offset = 1;

//二つを組み合わせると、limit 10 offset 1 を意味します。制限 1,10

$criteria->order =

'xxx DESC,XXX ASC'

;//並べ替え基準

$criteria->group = 'グループ基準';

$criteria->having = 'having条件';

例: PHPコード $criteria = new

CDbCriteria();


$criteria

->select =

'table_name,model_id,sum(amount) total'; $criteria->group = 'table_name,model_id';

$criteria->addCondition("$nIdcId=4");// $criteria->condition = "$nIdcId=4" もできます

$aResult = Accessories_info::model()->findAll($criteria

); $c =

新しい CDbCriteria(); $c->select = 't.id, t.created_at, t.outsource_id, t.user_id, t.operate, t.content'

; $c

->join = 'outsource.id=t.outsource_id' でアウトソースを左結合します

; $c->condition = 'outsource.idc_id IN(' . implode(

',', $idc_ids) . ' ;

if(

$last_log_id

) { } $c->制限 = 20; $c

->order =

't.id DESC'

;

$logs = OutsourceProcessLog::model()->findAll(

$c

); 注: 1. DAO メソッドの結果と DAO メソッドの結果の違いは、DAO メソッドの配列内の各要素が依然として配列であることです。 CDbCriteria メソッドでは、配列内の要素はオブジェクトです。 2. この機能は非常に強力ですが、現時点ではまだ満たせない要件がいくつかあります。たとえば、**** から avg(num) 金額を選択します。 2. mergeWith

の状況

//ActiveRecord に条件付き制限を追加します

$this->getDbCriteria()->mergeWith(

array( I'Condition' = & GT "($ ID) の IDC_ID"

)); 原文はBaidu Space「Yii CDbCriteria Common Methods」より転載

http://www.bkjia.com/PHPjc/780018.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/780018.html
技術記事

注: $c=newCDbCriteria(); は、マニュアルの DAO (PDO) と QueryBuilder の代わりに、ActiveRecord をより柔軟に作成する方法です。 YiiCDbCriteria の注意事項と一般的な使用法をいくつか示します...

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