我使用了连接查询,它连接了三个表employee,places和employee_places。连接查询给了我所有结果,因为我使用了find('all')。但是在视图页面中我只想显示员工姓名来自员工表 - 从下拉列表中的地方表中的地名。 例如: - emp1-place1,emp2-place2等。我应该在哪里给出find中的字段名称。 请查看以下代码:
$ options ['joins'] = array( array('table'=>'employees', 'alias'=> 'EMP', 'type'=> '内', 'conditions'=>阵列( 'emp.id = EmployeePlace.employee_id' ) ) 数组('table'=>'places', 'alias'=> 'PL', 'type'=> '内', 'conditions'=>阵列( 'pl.id = EmployeePlace.place_id' ) ) );
$ empTables = $ this-> Bill-> EmployeePlace-> find('all',$ options);
$这 - >设置(紧凑( '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。如何使用find中的条件执行此操作。
答案 0 :(得分:0)
使用可包含的:http://book.cakephp.org/view/1323/Containable
然后,您将只处理您需要的数据。
循环结果并构建所需的字符串。将字符串添加到以您希望选择返回的值为索引的数组中。将数组传递给视图。
你将如何处理这些价值观?当用户做出选择时你想做什么?
OR:
您可以创建一个db view,这是一个可以动态组合其他表中数据的表。 CakePHP可以将其作为普通表进行访问。