我必須製作一些過濾器,例如獲取某個部門的人員,並且我想知道如何做到這一點。ActiveRecord(CDbCriteria)與QueryBuilder?
其中一些將要求多個表的連接。
有沒有人知道CDbCriteria
和查詢生成器之間的主要區別?我特別想知道與數據庫的兼容性。
,我發現這個關於查詢生成器Yii的文檔中:
它提供了一定程度的數據庫抽象,簡化了遷移到不同的數據庫平臺。
對於CDbCriteria對象它是一樣的嗎?好點嗎?
我必須製作一些過濾器,例如獲取某個部門的人員,並且我想知道如何做到這一點。ActiveRecord(CDbCriteria)與QueryBuilder?
其中一些將要求多個表的連接。
有沒有人知道CDbCriteria
和查詢生成器之間的主要區別?我特別想知道與數據庫的兼容性。
,我發現這個關於查詢生成器Yii的文檔中:
它提供了一定程度的數據庫抽象,簡化了遷移到不同的數據庫平臺。
對於CDbCriteria對象它是一樣的嗎?好點嗎?
當使用Yii的active record(AR)抽象(通常是所有的時間)時,使用CDbCriteria
的概念。 AR要求您爲數據庫中的各個表創建models。
Query builder訪問數據庫的一種非常不同的方式;實際上它是一個結構化的包裝器,它允許你以編程的方式構造一個SQL查詢,而不是將它寫成一個字符串(作爲額外的好處,它也提供了一定程度的數據庫抽象)。
在典型的應用程序中,幾乎不需要使用查詢生成器,因爲AR已經提供了大量的功能,並且它也提供了相同程度的數據庫抽象。
在某些情況下,你可能想運行一個非常特殊類型的查詢,是不是方便或高性能通過AR發行。然後,您有兩種選擇:
正如你所看到的,查詢生成器在大多數情況下並不是那麼有用。只有當你想編寫非常自定義的動態構建查詢時,才能使用它。
您提到的示例功能可以並且應該使用AR實現。