0

私はこれらのテーブルを持っています:

表:クリエイター

**クリエイター**

obs .:私もその方法を試しました:

ここに画像の説明を入力

表:投稿

ここに画像の説明を入力

CreatorModel.php

class CreatorModel extends AppModel {
    public $actsAs = array('Containable');
    public $hasOne = array('Post');
}

PostModel.php

class PostModel extends AppModel {
    public $actsAs = array('Containable');
    public $hasOne = array('Creator');
}

IndexController.php

$this->set('posts', $this->Post->find());

index.ctp

var_dump($posts);

アソシエーション http://book.cakephp.org/2.0/en/models/associations-linking-models-together.htmlに関する CakeBook セッションに続いて

ビューでその応答を受信する必要があります。

Array
(
    [Post] => Array
        (
            [id] => 1
            [creator_id] => 1
            [tags] => 
            [title] => Teste
            [post] => Maromba
            [created] => 2013-04-29 19:14:32
            [modified] => 2013-04-29 19:14:32

        )
    [Creator] => Array
        (
            [creator_id] => 1
            [creator] => Alexandre Moraes
        )
)

しかし、私はこれを受け取ります:

Array
(
    [Post] => Array
        (
            [id] => 1
            [creator_id] => 1
            [tags] => 
            [title] => Teste
            [post] => Maromba
            [created] => 2013-04-29 19:14:32
            [modified] => 2013-04-29 19:14:32

        )
)

それで、私が間違っていることはありますか?

4

2 に答える 2

2

デシベルで

CREATORS TABLE
---
id | creator

Creator.php

class Creator extends AppModel {
    public $actsAs = array('Containable');
    public $hasOne = array('Post');
}

Post.php

class Post extends AppModel {
    public $actsAs = array('Containable');
    public $belongsTo= array('Creator');
}

モデルの命名と Post.php の関連タイプに注意してください。

IndexController.php

$this->set('posts', $this->Post->find('all', array('contain'=>array('Creator')));

これらの変更を行うと、返される配列は期待どおりのものになるはずです。

于 2013-04-29T19:28:07.720 に答える