2010-10-13 67 views
0

林新CakePHP和我有一個小問題查詢數據。 我有一個用戶模型和產品模型在多對多的關係。幫助過濾cakephp中的數據

我只是簡單地爲我的產品/索引操作獲取與該用戶相關的產品(用戶存儲在會話中)而不是所有產品(這是默認情況下)。

請幫忙。

回答

0

這應該做的伎倆:

$products = $this->Product->find('all', array(
    'conditions' => array(
     'User.id' => $user_id_from_session 
    ) 
)); 
+0

這是一個多對多的關係.. User.id是不是在產品表中的字段...查詢是給我的錯誤原因它並沒有引用Products_Users表中的所有 – ignaciofuentes 2010-10-13 01:18:04

1

你只需要set up the relationship正確,其餘的是自動的。

型號:

class User extends AppModel { 
    var $hasAndBelongsToMany = array(
     'Product' => array(/* set up relationship */) 
    ); 
} 

控制器:

$this->User->recursive = 2; // just to make sure, shouldn't be necessary 
$user = $this->User->read(null, $userId); 

debug($user); 
/** 
* $user['User'] contains the user data 
* $user['Product'] contains associated products 
*/ 
+0

,但我如何獲取數據到視圖?我需要查看數據填充與用戶相關的一堆產品登錄... rememebr我正在嘗試在產品/索引 – ignaciofuentes 2010-10-13 01:33:38

+1

@NachoF看來你錯過了蛋糕的基本面。請遵循[教程](http://book.cakephp.org/view/1535/Create-a-Posts-Controller),直到您理解基本模型 - >控制器 - >查看流程。 – deceze 2010-10-13 01:38:23

+0

@Nacho嘗試「烘烤」你所有的觀點(我認爲你已經做到了)。看看'/ users/view /'控制器和視圖。它基本上做你想要的。一旦你瞭解它如何工作,它應該很容易適應你的需求。 – deceze 2010-10-13 01:40:32