使用find加入cakephp

时间:2011-02-08 11:43:47

标签: php cakephp join find

我使用了连接查询,它连接了三个表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中的条件执行此操作。

1 个答案:

答案 0 :(得分:0)

使用可包含的:http://book.cakephp.org/view/1323/Containable

然后,您将只处理您需要的数据。

循环结果并构建所需的字符串。将字符串添加到以您希望选择返回的值为索引的数组中。将数组传递给视图。

你将如何处理这些价值观?当用户做出选择时你想做什么?

OR:

您可以创建一个db view,这是一个可以动态组合其他表中数据的表。 CakePHP可以将其作为普通表进行访问。