CakePHP 1.3, помощник по формам и таблица для самостоятельной работы - PullRequest
0 голосов
/ 20 августа 2010

Моя таблица самообъявленных категорий выглядит следующим образом:

id, name, description, parent_id

Я использовал Cake Bake для генерации модели, контроллера и представлений.Модель имеет ассоциацию $ ownTo и $ hasMany.В add () контроллера присутствует

$parentCategories = $this->Category->ParentCategory->find('list');
$this->set(compact('parentCategories'));

.В представлении добавления сгенерированная форма для выпечки торта:

<?php
        echo $this->Form->input('name');
        echo $this->Form->input('description');
        echo $this->Form->input('isincome');
        echo $this->Form->input('parent_id');
?>

Когда я запускаю в браузере, поле parent_id становится выпадающим, но не заполняется никакими данными.Я использовал

<?debug($parentCategories);?> 

в представлении добавления, и он успешно выдает

Array
(
    [1] => Entertainment
    [2] => Groceries
)

Но этот массив не используется для заполнения этого выпадающего списка помощником по форме.Что я должен делать?Это ошибка с помощником формы Cake в версии 1.3?Это никогда не происходило в 1.2 ...

1 Ответ

2 голосов
/ 20 августа 2010

При добавлении ввода для field_id помощник формы ищет переменную с именем $fields.Т.е. имя без _id и во множественном числе.$parentCategories не подходит под это описание, поэтому оно не используется.$parents будет.

Во-вторых, $this->Category->ParentCategory совпадает с $this->Category.Оба ссылаются на модель категории.Нет необходимости проходить через ParentCategory.

В-третьих, обычно не очень хорошая идея присоединять модель дерева к себе.Вы поймете, почему, когда вы начнете запрашивать с более высокими настройками recursive.Вместо этого вы должны сделать его надлежащим Tree и использовать методы TreeBehavior для его запроса.

...