2011-02-08 2 views
0

私は3つのテーブルemployee、places、employee_placesを結合するjoinクエリを使用しました。joinクエリはfind( 'all')を使用したのですべての結果を返します。職場テーブルの従業員テーブル名からの従業員名をドロップダウンに表示します。 例: - emp1-place1、emp2-place2などです。フィールド名はどこで検索するべきですか?cakephpで結合するfindを使用して

$オプション[ '参加する'] =配列( 配列( 'テーブル' => '従業員、 'エイリアス'=> 'EMP'、 'タイプ'=>':次のコードで ルックインナー ' '条件'=>配列( 'emp.id = EmployeePlace.employee_id' ) )、 アレイ( 'テーブル'=> '場所' '別名'=> 'PL' 'タイプ '=>' inner '、 '条件 '=>配列( ' pl.id = EmployeePlace.place_id ' ) ) );

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

$ this->(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 
      ) 


    ) 

私はちょうどdropNameのplace tableからemployee - placeNameのfirstNameが必要です。どのように私はfindで条件を使用してこれを行うのですか?収容可能

+0

モデルに役立つ可能性のある仮想フィールドがあります。 –

+0

上記のコードを参考にすれば良いでしょう。 –

+0

バーチャルフィールドは、正しくリコールすれば、1つのモデル内のフィールドのみを結合できます。 – kaklon

答えて

0

用途:http://book.cakephp.org/view/1323/Containable

あなただけあなたが必要とするデータを扱うことになります。

結果をループし、必要な文字列を作成します。選択範囲に戻す値に対してインデックスされた配列に文字列を追加します。アレイをビューに渡します。

どのように値を処理しますか?ユーザーが選択したときに何をしたいですか?

OR:

あなたはその場で他のテーブルからのデータを組み合わせたテーブルである、db viewを作成することができます。 CakePHPはこれを通常のテーブルとしてアクセスできます。

+0

- コンテナは正常に動作します。実際には、Iamが結合を使用して取得したものと同じ結果が得られます。今私はドロップダウンにemployee.firstName - place.placeNameが必要なので、これらの配列をビューに渡す方法を打ちました。どのように値を渡すか。私は配列全体を持っています。 –

+0

- 私は今問題を解決しました。今はすべて正常に動作しています。あなたの助けにたくさんThnx。 –

関連する問題