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
精彩评论