2010-06-08 148 views
0

我有喜歡的領域表:
EMPID,empname,empcode,部門標識...
CakePHP的獲得自我的hasMany陣列


我需要一個像
[產品型號]
陣列--- ---- [department_id 1]
-------------- [0]
------------------- - [empid]
-------------------- [empname]
-------------------- [empcode]

-------------- [1]
--- ----------------- [empid]
-------------------- [empname]
--- ----------------- [empcode]

-------------- [2]
------- ------------- [empid]
-------------------- [empname]
------- ------------- [empcode]


------- [department_id 2]
-------------- [0]
-------------- ------ [empid]
-------------------- [empname]
-------------- ------ [empcode]

-------------- [1]
------------------ - [empid]
-------------------- [empname]
------------------ - [empcode]

-------------- [2]
-------------------- [empid]
----- --------------- [empname]
-------------------- [empcode]

--- ---- [department_id 3]
-------------- [0]
------------------- - [empid]
-------------------- [empname]
------------------- - [empcode]

-------------- [1]
-------------------- [empid]
-------------------- [empname]
-------------------- [empcode]


問候,

+0

你是說你有一個表這四個領域? – Sunny 2010-06-08 09:27:34

回答

1

你應該尋找設置::合併功能:

http://book.cakephp.org/view/662/combine

爲你確切的解決方案將(根據您的例子):

$employees = $this->Employee->find('all'); 
$result = Set::combine(
    $employees, 
    '/Employee/empid', 
    '/Employee', 
    '/Employee/department_id'); 

希望這有助於

0

看來你的 '部門' 和「員工'實體之間有一對多的關係。所以最好把桌子分成兩部分。有一個表部門和另一個員工。 Department ID將成爲Employee表的外鍵。

例如,

「部門」 表: - ID,部門名稱,..

「僱員」 表: - ID,EMP_NAME,emp_code,...,部門標識(外鍵)

瞭解更多關於模型關係: http://book.cakephp.org/view/79/Relationship-Types

+0

我的問題實際上與人際關係無關,基本上,groupby並沒有建立結果來形成這個數組以供在視圖中使用,我想知道是否有另一種方法來做到這一點,可能是自加入或虛表 – openprojdevel 2010-06-08 09:01:49

+0

這是因爲group by返回唯一鑰匙不是嗎?意思是......如果你按照department_id進行分組,它將只返回一個特定的department_id一次。既然你不想因爲某種原因打破這個表格,它會以你想要的方式輕鬆地檢索結果,爲什麼不簡單地檢索所有記錄並使用循環來遍歷數組並按照你的方式對它們進行分類想?只是一個想法。 – Vicer 2010-06-09 00:19:43