私はちょうどCDbCriteria
のマニュアルページをチェックしましたが、十分な情報がありません。 このプロパティはv1.1.7以降で利用可能で、ヘルプが見つかりませんでした。 「オンザフライ」で動的にModel->scopes
を変更するのですか?誰もCDbCriteria-> scopeがどのように機能するか説明できますか?
答えて
スコープはデフォルトで簡単なフィルタを簡単に作成する方法です。スコープを使用すると、彼らはどのようにクールの大きな例があります@ldgから提供されているリンクではなど、自動的に特定の列で、あなたの結果をソート結果を制限、条件を適用することができます。
$posts=Post::model()->published()->recently()->findAll();
誰かがすべて取得されます最近公開された投稿を1行にまとめました。インライン条件(例:Post::model()->findAll('status=1')
)よりも保守が容易で、各モデルの内部にカプセル化されているため、透過性が高く、使いやすさが向上します。
プラス、あなたはこのようなあなた自身のパラメータベースのスコープを作成することができます:モデルの中にこのような何かを追加する
public function last($amount)
{
$this->getDbCriteria()->mergeWith(array(
'order' => 't.create_time DESC',
'limit' => $amount,
));
return $this;
}
はあなたがデータベースから取得するオブジェクトの量を選択できるようになる(並べ替え、その時間を作る)。 オブジェクト自体を返すことで、メソッド連鎖が可能になります。
はここに例を示します
$last3posts=Post::model()->last(3)->findAll();
は、最後の3つの項目を取得します。もちろん、この例をデータベースのほぼすべてのプロパティに拡張することができます。乾杯
しかし、CActiveRecordスコープではなく、スコープでCDbCriteriaを使用する方法を尋ねました。 paramsでそれらを使用する方法について説明します。 – RusAlex
CActiveRecordスコープは実際にはCDbCriteriaの変更の影響を受け、CDbCriteriaスコープは実際にCActiveRecordレコードをフィルタリングします。 CDbCriteriaは、データベース結果の条件をカプセル化する方法です。だから私は何の違いも見つけられない。あなたが心配して大きなコードブロックを見ると、last()関数はパラメータを持つカスタムスコープです。 – Korcholis
はい、スコープを使用して、事前構築された条件付きのCDbCriteriaの属性を変更したり、パラメータを渡すこともできます。 1.1.7より前には、それらをmodel()クエリで使用して、一緒にチェーンすることができました。参照: http://www.yiiframework.com/doc/guide/1.1/en/database.ar#named-scopes
1.1.7以降、スコープをCDbCriteriaプロパティとして使用することもできます。 参照:http://www.yiiframework.com/doc/guide/1.1/en/database.arr#relational-query-with-named-scopes
あなたは私の使用例を教えてくれますか?私は自分で試してみましたが、モデルスコープのパラメータを条件スコープのプロパティで「オンザフライ」で変更する方法はありません。 – RusAlex
- 1. 誰でもこの機能がどのように機能するのか説明できますか?
- 2. 誰でもHABTMの原理がどのように機能するのか説明できますか?
- 3. 誰もLUAコードがどのように機能するか説明できますか?
- 4. 誰かがLDRDの腕の指導がどのように機能するのか説明できますか?
- 5. 誰かがこのループがどのように機能内でしか機能するのかを私に説明することはできますか?
- 6. 誰でもどのようにユニバーサルソフトウェアアップデートチェッカーを作ることができるのか説明できますか?
- 7. 誰もこのスクランブリング機能の仕組みを説明できますか?
- 8. 誰かがActiveRecord postgres pg_typeの機能について説明できますか?
- 9. 誰かがどのようにこの作品を説明できますか?
- 10. 誰もこのコードが1から10をどのように印刷するか説明できますか?
- 11. 誰かがこのコードの機能を説明できますか?
- 12. 誰かがこの機能がlaymansの言葉でどのように機能するのか説明できますか?
- 13. これはどのようにjavascriptで2になるのですか誰でも説明できますか?
- 14. 誰かがObservable.timeoutとtakewhileの機能を説明できますか?
- 15. 次のコードがどのように機能するかを説明することができますか?
- 16. は誰がどのように私に説明できますか?
- 17. これはどのように可能ですか?誰かがこれを説明できますか?
- 18. 誰もが関数の誤解を説明できますか?
- 19. 誰もがこのプログラムを説明できますか?
- 20. シンボル "=>"がScalaでどのように使われているか誰でも説明できます
- 21. 誰も私にこのコードを説明できますか?
- 22. 誰も私にこのコードを説明できますか?
- 23. Javascript:誰も私にこのコードブロックを説明できますか?
- 24. 誰も私にこのMATLABコードを説明できますか?
- 25. 誰もiReportについてJavaで説明できますか?
- 26. 誰でも、AudioSessionSetActive(true/false)関数がiPhone OSでどのように機能するか説明できますか?
- 27. 誰かが5のように私にpython-twistedを説明できますか?
- 28. 誰でもリクエストリプライブローカのzeromqの例を説明できますか?
- 29. 誰でもCodeSmith SchemaExplorer.ViewSchemaコンストラクタのパラメータを説明できますか?
- 30. 誰でも私のコードを説明できますか?
私たちの答えの手がかりはありませんか? – Korcholis
例を探している人のために、私は[ブログ投稿](http://blog.4aal.nl/post/yii-named-scopes-examples)を作成しました。 – Henk