CakePHP читать в hasMany через отношения - PullRequest
1 голос
/ 20 февраля 2012

Попытка отобразить связанные данные из таблицы hasMany через. Он находит joinModel, но не распространяется на данные другой таблицы.

Модель товара :

class Item extends AppModel {
public $name = 'Item';
    public $belongsTo = array('Category');
    public $hasMany = array('GroclistItem');
}

Модель Groclist :

class Groclist extends AppModel {
public $name = 'Groclist';
    public $belongsTo = array('Category');
    public $hasMany = array('GroclistItem');
}

Модель GroclistItem :

class GroclistItem extends AppModel {
public $name = 'GroclistItem';
    public $belongsTo = array('Groclist', 'Item');
    public $useTable = 'groclists_items';
}

Действие GroclistController View :

public function view($id = null) {
    if (!$id) {
        $this->Session->setFlash(__('Invalid list', true));
        $this->redirect(array('action' => 'index'));
    }
    $this->set('groclist', $this->Groclist->read(null, $id));
}

Отладка $ groclist :

app\View\Groclists\view.ctp (line 80)
Array
(
[Groclist] => Array
    (
        [id] => 3
        [name] => This Week
        [user_id] => 
        [sunday] => Pizza
        [monday] => Scallops
        [tuesday] => Stuffed Mushrooms
        [wednesday] => Mustard Chicken with Daulphanois Potatoes
        [thursday] => Sizzling Chicken and Cheese
        [friday] => Walkabout Soup with Beer Bread
        [saturday] => Paradise Indian
        [created] => 2011-09-15 14:42:55
        [modified] => 2012-02-19 16:51:00
    )

[GroclistItem] => Array
    (
        [0] => Array
            (
                [id] => 18
                [item_id] => 24
                [groclist_id] => 3
            )

        [1] => Array
            (
                [id] => 17
                [item_id] => 23
                [groclist_id] => 3
            )

    )

)

Мне бы хотелось, чтобы в массиве GroclistItem отображались данные об элементах, которые должны представлять собой элементы списка продуктов, такие как диетическая кола или мыло. Там находят правильные ассоциации.

1 Ответ

3 голосов
/ 20 февраля 2012

GroclistController View Action:

public function view($id = null) {
if (!$id) {
    $this->Session->setFlash(__('Invalid list', true));
    $this->redirect(array('action' => 'index'));
}
$this->Groclist->recursive =2;
$this->set('groclist', $this->Groclist->read(null, $id));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...