簡體   English   中英

Cakephp-從不關聯的模型獲取數據庫數據

[英]Cakephp - get database data from not associated models

我想問一下,如何從一個表中獲取數據並在其他表中使用它。

例如,我有電影桌。 我想獲得最高評分的3部電影。 結果應返回3個ID。

現在,我想從不關聯的表中創建其他查詢,並將這3個ID作為“條件”傳遞以在其他表中查找數據。

我不想使用關聯,因為數據存儲在許多數據庫中,這是有問題的。

謝謝。

獲得膠片ID后,您可以使用in來過濾其他Model的結果:

$filmIds = ['32','55','75'];

$query = TableRegistry::get('Model')->find()
    ->where(function ($exp, $q) use ($filmIds) {
        return $exp->in('film_id', $filmIds);
    });
// WHERE film_id IN ('32','55','75')

查看有關高級條件的文檔部分。

如果您需要將電影ID設置為正確的格式( 示例代碼中顯示的格式),則可以對先前查詢的結果使用Hash::extract()

如果您的cakephp版本3.x,則可以以相當直觀的方式使用子查詢

$films = TableRegistry::get('Films')->find('highestRated')
->select(['id'])
->limlt(3);

$query = $related->find()
->where(['id' => $films]);

在可以使用查詢表達式的任何地方都接受子查詢。 例如,在select()和join()方法中。 http://book.cakephp.org/3.0/en/orm/query-builder.html#subqueries

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM