首頁 php教程 php手册 Cakephp查詢關聯表的方法總結

Cakephp查詢關聯表的方法總結

Dec 20, 2016 am 09:35 AM

我們可以採用下列幾種方式實作

{查詢指定User的Note中包含關鍵字keyword的所有資訊}

1.SQL語句

SELECT * FROM Users AS User
LEFT JOIN Notes AS Note ON User.id = Note.user_id
WHERE
User.id = {$user_id}
AND
Note.subject LIKE '%{keyword}%'
登入後複製

然後我們執行這個SQL語句,使用模型的query方法

$data = $this->User->query($sql);
登入後複製

reee

然後我們執行這個SQL語句,使用模型的query方法

//重新绑定关联指定查询条件
 
$this->User->unbindModel('Note');
$this->User->bindModel(
    'hasMany' => array(
        'Note' => array(
            'conditions' => array(
                'Note.subject LIKE' => '%'.$keyword.'%'
            )
        )
    )
);
 
//指定主表条件获取数据
$data = $this->User->find('all',array(
    'conditions' => array(
        'User.id' => $user_id
    )
));
 
//或者
 
$data = $this->User->read(null,$user_id);
登入後複製

reee

2.使用模型的bindModel()和unbindModel()方法

關於這兩種方法的說明,請參照

http://api.cakephp.org/class/model

我們的做法是

class AppModel extends Model {
 
    //加载核心行为
    var $actsAs = array('Containable');
 
}
登入後複製

3. 使用Cakephp的核心行為(Behavior) Containable

我們先建立自己的AppModel類別,建立檔案/app/app_model.php

$this->User->contain('Note.subject LIKE' => '%'.$keyword.'%');
 
$data = $this->User->find('all',array(
    'conditions' => array(
        'User.id' => $user_id
    )
));
登入後複製

然後我們在控制器中,可以透過這樣​​的程式碼查詢

$data = $this->User->find('all',array(
    'conditions' => array(
        'User.id' => $user_id
    ),
    'contain' => array(
        'Note' => array(
            'conditions' => array(
                'Note.subject LIKE' => '%'.$keyword.'%'
            )
        )
    )
));
登入後複製

SELECT *
FROM users AS User
LEFT JOIN notes AS Note ON User.id = Note.user_id
WHERE
User.name LIKE '%keyword%'
OR
Note.subject LIKE '%keyword%'
登入後複製
rrreee

rrreee

rrreee

rrreee
rrreee

rrreee也可以直接寫到find語句中,類似下面的

rrreee
注意事項:

🎜如果要查詢{User.name或Note.subject包含關鍵字keyword的所有記錄}🎜🎜此時,Cakephp的find方法無法實現這個查詢,必須使用上面介紹的自訂SQL語句,如下:🎜rrreee🎜 以上就是Cakephp查詢關聯表的方法總結的內容,更多相關內容請關注PHP中文網(www.php.cn)! 🎜🎜🎜🎜🎜
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

CakePHP 專案配置 CakePHP 專案配置 Sep 10, 2024 pm 05:25 PM

在本章中,我們將了解CakePHP中的環境變數、常規配置、資料庫配置和電子郵件配置。

CakePHP 使用資料庫 CakePHP 使用資料庫 Sep 10, 2024 pm 05:25 PM

在 CakePHP 中使用資料庫非常容易。本章我們將了解CRUD(建立、讀取、更新、刪除)操作。

如何使用CakePHP中的資料庫查詢建構器? 如何使用CakePHP中的資料庫查詢建構器? Jun 04, 2023 am 09:02 AM

CakePHP是一個開源的PHPMVC框架,它廣泛用於Web應用程式的開發。 CakePHP具有許多功能和工具,其中包括一個強大的資料庫查詢建構器,用於互動效能資料庫。此查詢建構器可讓您使用物件導向的語法執行SQL查詢,而不必編寫繁瑣的SQL語句。本文將介紹如何使用CakePHP中的資料庫查詢建構器。建立資料庫連線在使用資料庫查詢建構器之前,您首先需要在Ca

如何在CakePHP中建立自訂分頁? 如何在CakePHP中建立自訂分頁? Jun 04, 2023 am 08:32 AM

CakePHP是一個強大的PHP框架,為開發人員提供了許多有用的工具和功能。其中之一是分頁,它可以幫助我們將大量資料分成幾頁,從而簡化瀏覽和操作。預設情況下,CakePHP提供了一些基本的分頁方法,但有時你可能需要建立一些自訂的分頁方法。這篇文章將向您展示如何在CakePHP中建立自訂分頁。步驟1:建立自訂分頁類別首先,我們需要建立一個自訂分頁類別。這個

CakePHP 建立驗證器 CakePHP 建立驗證器 Sep 10, 2024 pm 05:26 PM

可以透過在控制器中新增以下兩行來建立驗證器。

CakePHP如何處理檔案上傳? CakePHP如何處理檔案上傳? Jun 04, 2023 pm 07:21 PM

CakePHP是一個開源的Web應用程式框架,它基於PHP語言構建,可以簡化Web應用程式的開發過程。在CakePHP中,處理文件上傳是常見的需求,無論是上傳頭像、圖片或文檔,都需要在程式中實現對應的功能。本文將介紹CakePHP中如何處理文件上傳的方法和一些注意事項。在Controller中處理上傳檔案在CakePHP中,上傳檔案的處理通常在Cont

CakePHP 路由 CakePHP 路由 Sep 10, 2024 pm 05:25 PM

在本章中,我們將學習以下與路由相關的主題?

如何在CakePHP中使用TCPDF? 如何在CakePHP中使用TCPDF? Jun 05, 2023 pm 12:40 PM

CakePHP是一種非常流行的PHP框架,它提供了許多方便的方法來進行Web應用程式的開發。當我們需要在應用程式中產生PDF檔案時,TCPDF是一種非常常用的PDF生成庫。這篇文章將會介紹如何在CakePHP中使用TCPDF。安裝TCPDF首先,我們需要將TCPDF安裝在我們的CakePHP專案中。這可以透過幾種方式來完成,例如手動將TCPDF複製到專案的v

See all articles