CakePHP получить себе hasMany массив - PullRequest
0 голосов
/ 08 июня 2010

У меня есть таблица с полями, такими как:
empid, empname, empcode, департамент_id ...


Мне нужен массив типа
[Модель]
------- [ департамент_ид 1 ]
-------------- [0]
-------------------- [empid]
-------------------- [empname]
-------------------- [empcode]

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

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


------- [ департамент_ид 2 ]
-------------- [0]
-------------------- [empid]
-------------------- [empname]
-------------------- [empcode]

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

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

------ [ департамент_ид 3 ]
-------------- [0]
-------------------- [empid]
-------------------- [empname]
-------------------- [empcode]

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


С уважением,

Ответы [ 2 ]

1 голос
/ 10 июня 2010

Вам следует поискать функцию Set :: comb:

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

Точное решение для вас будет (на основе вашего примера):

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

Надеюсь, это поможет

0 голосов
/ 08 июня 2010

Кажется, что у ваших подразделений "Отдел" и "Сотрудник" есть отношения один ко многим. Так что лучше разбить стол на две части. есть один стол для отдела и другой для сотрудника. Идентификатор отдела будет тогда внешним ключом в таблице сотрудников.

Например,

Таблица "Отдел": - id, имя отдела, ..

Таблица «Сотрудник»: - id, emp_name, emp_code, ..., Department_id (внешний ключ)

Узнайте больше о модельных отношениях на: http://book.cakephp.org/view/79/Relationship-Types

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...