2011-12-14 87 views
0

我的問題是我想從5個不同的表中獲取數據所有表都是相關的,我可以創建一個SQL查詢來獲得我想要的。這裏是。cakephp找到所有與幾個表

SELECT accounts.account_number, trailers.id, members.first_name, balances.balance, loans.loan_description, delinquent_loans.days_delinquent, delinquent_loans.amount_delinquent, delinquent_loans.next_contact, delinquent_loans.last_contact 
FROM accounts, trailers, members, balances, accounts_trailers, loans, delinquent_loans 
WHERE delinquent_loans.loan_id = loans.id 
AND loans.accounts_trailer_id = accounts_trailers.id 
AND accounts_trailers.account_id = accounts.id 
AND accounts_trailers.trailer_id = trailers.id 
AND accounts.member_id = members.id 
AND balances.accounts_trailer_id = accounts_trailers.id 
AND members.first_name 
REGEXP '^[a-l]' 
ORDER BY delinquent_loans.days_delinquent DESC 

我不明白的是如何在cakePHP中正確查詢這個查詢。我相信我可以使用查詢功能並粘貼以前的查詢,但我想以正確的方式做到這一點。

public function listAL(){ 
    $this->recursive = -1; 
    $conditions = array('`DelinquentLoan`.`loan_id` = `Loan`.`id`', 
           '`Loan`.`accounts_trailer_id` = `AccountsTrailer`.`id`', 
           '`AccountsTrailer`.`account_id` = `Account`.`id`', 
           '`AccountsTrailer`.`trailer_id` = `Trailer`.`id`', 
           '`Account`.`member_id` = `Member`.`id`', 
           '`Balance`.`accounts_trailer_id` = `AccountsTrailer`.`id`', 
           '`Member`.`first_name` regexp \'^[a-l]\''); 
    $fields = array('`Account`.`account_number`, 
          `Trailer`.`id`, `Member`.`first_name`, 
          `Balance`.`balance`, 
          `Loan`.`loan_description`, 
          `Delinquent_loan`.`days_delinquent`, 
          `Delinquent_loan`.`amount_delinquent`, 
          `Delinquent_loan`.`next_contact`, 
          `Delinquent_loan`.`last_contact`'); 
    return $this->find('all', array('fields'=> $fields, 
               'order'=>array('`DelinquentLoan`.`days_delinquent` desc'), 
               'conditions'=> $conditions)); 
} 

任何幫助,這是表示讚賞。我看過其他網站和論壇,但無濟於事。謝謝。

回答

0

晚了一點,但我認爲這是你要搜索的內容:

Model::saveAssociated(array $data = null, array $options = array()) 

在食譜Saving Your Data

0

如果模型之間的關聯是做得很好找到的,我沒有看到使用簡單的find('all',...)會出現什麼問題,也許你應該更好地指定你想要用你的模型做什麼,它們之間的關聯如何。

可能的包含行爲可能會幫助你。它用於執行「查找」時剪切和過濾信息:

http://book.cakephp.org/2.0/en/core-libraries/behaviors/containable.html