开发者

cakePHP get self hasMany array

I have an table with fields like:

empid,empname,empcode,department_id ...

I need an array like

[Model]

-------[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]

开发者_StackOverflow社区

Regards,


You should look for Set::combine function:

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

The exact solution for you will be (based on your example):

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

Hope this helps


It seems that your 'Department' and 'Employee' entities have a one-to-many relationship. So better break up the table into two. have one table for Department and another for Employee. The Department ID would then be a foreign key on Employee table.

For example,

"Department" Table:- id, department_name, ..

"Employee" Table:- id, emp_name, emp_code,..., department_id (foreign key)

Read more about model relationships at: http://book.cakephp.org/view/79/Relationship-Types

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜