我剛剛檢查了CDbCriteria
的手冊頁,但沒有足夠的信息。 此屬性自v1.1.7開始可用,我找不到任何幫助。 這是動態更改Model->scopes
「即時」嗎?任何人都可以解釋CDbCriteria->作用域是如何工作的嗎?
回答
作用域是默認情況下創建簡單過濾器的簡單方法。用示波器可以自動將結果通過特定的列進行排序,結果限制,申請條件等,但通過@ldg還有他們是如何的酷大的示例中提供的鏈接:
$posts=Post::model()->published()->recently()->findAll();
有人在檢索全部最近發佈的帖子在一行中。它們比內聯條件更容易維護(例如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項。當然,您可以將示例擴展到數據庫中的幾乎任何屬性。乾杯
是的,範圍可以用來改變CDbCriteria的屬性與預建條件,也可以通過參數。在1.1.7之前,你可以在模型()查詢中使用它們,並可以鏈接在一起。請參閱: 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. 任何人都可以解釋如何內循環工作?
- 3. 任何人都可以解釋OAuth嗎?
- 4. 任何人都可以解釋以下代碼的工作...?
- 5. 任何人都可以解釋這個約束是如何運作的嗎?
- 6. 任何人都可以解釋我這個代碼的工作
- 7. 任何人都可以解釋下面的LUA代碼是如何工作的?
- 8. 任何人都可以解釋@RequestMapping和@RequestBody是如何工作的?
- 9. 任何人都可以解釋我這個功能是如何工作的?
- 10. 任何人都可以解釋我這個Java代碼是如何工作的?
- 11. 任何人都可以解釋PHP中uksort()的工作原理嗎?
- 12. 任何人都可以解釋這種除法算法的工作原理嗎?
- 13. 任何人都可以向我解釋HABTM原理的工作原理嗎?
- 14. 有人可以解釋struts2 XSL ResultType是如何工作的嗎?
- 15. 有人可以解釋Laravel關係是如何工作的嗎?
- 16. 有人可以解釋音譯是如何工作的嗎?
- 17. 有人可以解釋這個stopPropagation是如何工作的嗎?
- 18. Lua任何人都可以解釋這是什麼嗎?
- 19. 任何人都可以解釋「視場」
- 20. 任何人都可以解釋list-urls.py
- 21. 任何人都可以解釋這
- 22. 任何人都可以解釋我StandardScaler?
- 23. 任何人都可以解釋輸出
- 24. 任何人都可以使_lockroot工作?
- 25. 任何人都可以解釋我如何過濾(':first')。click()工作?
- 26. 任何人都可以請解釋這個python代碼如何逐行工作?
- 27. 任何人都可以詳細解釋這行代碼的作用嗎?
- 28. 使用tee的奇怪:任何人都可以解釋嗎?
- 29. 任何人都可以告訴我這是如何工作的?
- 30. 任何人都可以解釋爲什麼foreach工作,但不是地圖
不是我們的答案線索? – Korcholis
對於任何正在尋找示例的人,我都會爲此創建一個[blog post](http://blog.4aal.nl/post/yii-named-scopes-examples)。 – Henk