2011-02-08 4 views
0

Я использовал запрос соединения, который объединяет три сотрудника таблицы, места и employee_places. Запрос соединения дает мне все результаты, поскольку я использовал find ('all'). Но на странице просмотра я просто хочу для отображения имени сотрудника из таблицы сотрудников - имя места из таблицы места в раскрывающемся списке. например: - emp1-place1, emp2-place2 и т. Д. Где я должен указывать имя поля в поиске. Посмотрите на следующий код:Входит в cakephp, используя find

$ OPTIONS 'сотрудников' [ 'присоединяется'] = массив ( массив ('стол' => 'псевдоним' => 'EMP', 'тип' => ' внутренняя ' ' условий'=> массив ( 'emp.id = EmployeePlace.employee_id' ) ), массив ('стол'=> 'места', 'псевдоним'=> 'пл', ' type '=>' internal ', ' conditions '=> array ( ' pl.id = EmployeePlace.place_id ' ) ) );

$ empTables = $ this-> Bill-> EmployeePlace-> find ('all', $ options);

$ this-> set (compact ('empTables'));

Этот запрос приводит следующий массив: -

Массив ( [0] => Массив ( [EmployeePlace] => Массив ( [ID] => 1 [employee_id] = > 1 [place_id] => 1 [Дата] => 2011-02-02 )

 [Employee] => Array 
      (
       [id] => 1 
       [image] => 
       [firstName] => Andy 
       [lastName] => Murray 
       [date_of_joining] => 2010-09-02 
       [date_of_leaving] => 2011-02-02 
       [date_of_birth] => 1991-08-10 
       [gender] => Male 
       [supervisor] => 0 
       [designation] => Manager 
       [user_id] => 0 
      ) 

     [Place] => Array 
      (
       [id] => 1 
       [placeName] => table-1 
       [section_id] => 1 
       [position] => Left 
       [seating_capacity] => 4 
      ) 


    ) 

)

Мне просто нужно firstName от сотрудника - placeName из таблицы места в выпадающем списке. Как это сделать, используя условие в поиске.

+0

В Модели есть виртуальные поля, которые могли бы помочь. –

+0

Если вы приведете пример по вышеуказанному коду, который будет лучше. –

+0

Виртуальные поля могут комбинировать поля только в одной модели, если я правильно помню – kaklon

ответ

0

Использование Containable: http://book.cakephp.org/view/1323/Containable

Вы тогда имеем дело только с данными, которые вам необходимы.

Завершите результаты и создайте нужные строки. Добавьте строки в массив, индексированный против значения, которое вы хотите вернуть. Передайте массив в представление.

Как вы собираетесь справляться со значениями? Что вы хотите сделать, когда пользователь сделал выбор?

ИЛИ:

Вы можете создать db view, который представляет собой таблицу, которая сочетает в себе данные из других таблиц на лету. CakePHP может получить доступ к этому как к обычной таблице.

+0

- Содержащиеся работы отлично подходят для меня. Infact он также дает те же результаты, что Iam получает с помощью объединений. Теперь я ударил, как передать эти массивы в представление, потому что мне нужно только employee.firstName - place.placeName в моем выпадающем списке. Итак, как передать значения для просмотра. У меня есть весь массив. –

+0

- Я решил проблему сейчас. Все отлично работает сейчас. Thnx много для вашей помощи. –

Смежные вопросы