2017-01-27 72 views
0

使用Yii 1和ActiveRecord - 我在這兩個都很新。yii ActiveRecord總是查詢數據庫

$types = CasinoSgTypes::model(); 
$types->findAll(); 
$types->findByPk(3); 

我以爲Yii的AR將嘗試在最近接收到的數據,而不是第一的,我已經得到2個調用數據庫進行搜索。大概我用錯了方式?

當然,我可以手動通過第一個查詢(findAll)收到的結果數組,但我想通過AR來完成此操作。

換句話說,是否有強制在已收到數據的內部進行AR搜索的方法,然後才詢問數據庫或者像這樣運行。如何正確使用AR + Yii模型以避免不必要的查詢?

回答

0

當您致電$types->findAll();時,數據不會保存在AR類中,因此您無法使用它進行搜索。搜索數據的一個更簡單的替代方法是使用query caching

$types->cache(3600)->findByPk(3); 
+0

因此AR和模型都沒有狀態?積累一些數據並減少數據庫負載?可能他們確實有我用錯的方式? – Eugene