CakePHP read () не получает принадлежащие привязки - PullRequest
0 голосов
/ 18 июня 2011

У меня есть модель с именем Voicenote, у которой есть отношение belongsTo с Fonyker и ActivitySource.Когда я делаю следующее:

function admin_index(){

        $this->layout = 'admin';
        $this->Voicenote->recursive = 2;

        $fields = array(
            'Voicenote.id',
            'Voicenote.title',
            'Voicenote.created',
            'Voicenote.duration',
            'Voicenote.public',
        );

        $this->paginate = array(
            'fields' => $fields,
            'limit' => 20,
            'order' => array('id' => 'ASC')
        );

        $result = $this->paginate('Voicenote');
        pr($result);
        $this->set('result', $result);
    }

Полученный массив поставляется без Fonyker и ActivitySource, какие-либо идеи о том, что может происходить?

[0] => Array
        (
            [Voicenote] => Array
                (
                    [id] => 1
                    [title] => CFRFA5KBLPJZP79B2PG8XH8DFSMB8G
                    [created] => 2011-03-09 00:00:00
                    [duration] => 23868
                    [public] => 0
                )

            [Fonyker] => Array
                (
                )

            [ActivitySource] => Array
                (
                )

Также, когда я пытаюсь использоватьunbindModel() и удалите все, кроме Fonyker и ActivitySource, они даже не отображаются как пустые массивы.

Ответы [ 2 ]

1 голос
/ 18 июня 2011

Я довольно новичок в CakePHP, но думаю, что вам также нужно определить модели Fonyker и ActivitySource? Например, поместите их в отношения hasOne или hasMany.

Редактировать: Кроме того, ваша переменная $fields - кажется, вы не выбираете никаких значений из Fonyker или ActivitySource.

0 голосов
/ 18 июня 2011

Поскольку вы используете recursive = 2 и видите пустые массивы Fonyker и ActivitySource, вы определенно запрашиваете эти модели, но ваш ограничительный 'fields' означает, что вы получите только те поля, которые вы перечислили .

Вам нужно добавить нужные поля из Fonyker и ActivitySource в ваш массив полей.

...