2013-05-21 87 views
0

我有大約25個連接查詢需要構建才能在CakePHP的項目中運行。CakePHP的多表通用查詢模型

它快得多,只是在MySQL工作臺或phpMyAdmin的建立查詢, 工作,然後放入PHP代碼比使用搞砸了CakePHP的模型參數parms,很多時候 沒有一個一對一關係到MySQL查詢。

是否有一個無表或多表「採取任何MySQL」的例子,減少或消除CakePHP的複雜性?

回答

0

TLDR:

使用模型的query()方法來寫自己喜歡的任何的MySQL。

更多細節:

聽起來好像你還沒有真正通過閱讀本書。在撲滅你不明白的事情之前,應該嘗試一下。

對於別人誰可能想了解如何加入的東西CakePHP中:

How to Join using CakePHP

而且

How to run any MySQL query in CakePHP

0

CakePHP提供了型號::查詢()對你有更多的控制。如果您真的想放棄CakePHP的查找方法,我傾向於使用準備好的語句。

$db = $this->getDataSource(); 
$db->fetchAll(
    'SELECT * from users where username = ? AND password = ?', 
    array('jhon', '12345') 
); 
$db->fetchAll(
    'SELECT * from users where username = :username AND password = :password', 
    array('username' => 'jhon','password' => '12345') 
); 

這裏有一張紙條:

查詢()不接受$型號 - > cacheQueries因爲它的功能是從呼叫模型 本身不相交。爲了避免緩存 來電來樣查詢,提供虛假,即第二個參數:查詢($查詢, $ cachequeries = FALSE)

+0

索普,感謝您的輸入!我正在使用這個工作的數據網格擴展,因爲默認的gridHelper只允許每個頁面有一個數據網格,規範是針對2(左和右),其中來自「左」的選擇移動到「右」然後處理。對數據和後續處理的查詢是扭曲所有這些。 – OldManRiver