

**RoomsController**

[code]

    public function index() {
        $this->Room->recursive = 0;
        $this->Prg->commonProcess();
        $this->paginate = array(
            'Room' =>
        array(
            'conditions' => array(
                $this->Room->parseCriteria($this->passedArgs),
            )
        ));
        $this->set('rooms', $this->paginate());
    }
    
[/code]

debug($rooms);

[code]

    array(
    (int) 0 => array(
        'Room' => array(
            'id' => '0001',
            'room_id' => '1234',
            'name' => 'hogehoge',
            'area_id' => 'tko1234',
        )
    ),
    (int) 1 => array(
        'Room' => array(
            'id' => '0002',
            'room_id' => '1235',
            'name' => 'fugafuga',
            'area_id' => 'osk1234',
        )
    )
    
[/code]

とあった場合、

[code]

    <?php foreach ($rooms as $roos): ?>
    $rooms['Room']['area_id'];
    <?php endforeach; ?>
    
[/code]

で出力される`'tko1234'`,
`'osk1234'`に対してこちらで用意しているAreaテーブルと連携させてエリア名をそれぞれ`'東京'`、`'大阪'`と出力させるにはどうしたら良いでしょうか？

**Areaテーブル**

[code]

    array(
    (int) 0 => array(
        'Area' => array(
            'id' => 'tko1234',
            'name' => '東京',
        )
    ),
    (int) 1 => array(
        'Area' => array(
            'id' => 'osk1234',
            'name' => '大阪',
        )
    ))
    
[/code]

となっています。  
初歩的な質問かもしれませんが、どなたかご教示いただけると幸いです。  
宜しくお願い致します。


CC BY-SA 4.0
2015-12-02T12:41:16.320
19563
2019-12-05T07:10:40.287
2019-12-05T07:10:40.287
35461
8500
question
cakephp
CakePHPで違うテーブルから紐付いたデータを取得する


アソシエーションという機能を使います。質問の内容であれば、belongs toのアソシエーションを設定します。

CakePHPでの実際の手順はマニュアルを参照してください

<http://book.cakephp.org/2.0/ja/models/associations-linking-models-
together.html>


CC BY-SA 3.0
2015-12-04T00:05:38.117
19608
2015-12-04T00:05:38.117
5793
19563
answer


`app/Model/Room.php`を作成して、そこに

[code]

    <?php
       App::uses('AppModel', 'Model');
    
       class Room extends AppModel {
          public $belongsTo = array('Area');
       }
    
[/code]

`app/Model/Area.php`を作成して、

[code]

    <?php
       App::uses('AppModel', 'Model');
    
       class Area extends AppModel {
          public $hasMany = array('Room');
       }
    
[/code]

でどうですか？


CC BY-SA 3.0
2015-12-17T13:58:12.930
20123
2015-12-17T13:58:12.930
10980
19563
answer