2015-04-09 3 views
0

До сих пор это часть cakePHP, которая поражает мой простой мозг.cakePHP для одной ассоциации нужна помощь

У меня для этого примера 2 таблицы. vw_penkits и vw_bushings

vw_penkits имеет поле vw_bushing_id

Вот модели:

class VwPenKit extends AppModel { 
    var $name = 'VwPenKit'; 
    var $useTable = 'vw_pen_kits'; 

    public $hasOne = 'VwBushing'; 
} 

class VwBushing extends AppModel { 
    var $name = 'VwBushing'; 
    var $useTable = 'vw_bushings'; 

    public $belongsTo = array (
     'PenKit' => array (
      'classname' => 'VwPenKit', 
      'foreignKey => 'vw_bushing_id' 
      ) 
     ); 
} 

Здесь индекс VwPenKitsController()

public function index() { 

    $this->loadModel('VwBushing'); 
    $bushings = $this->VwBushing->find('list'); 
    $this->set(compact('$bushings')); 

    $this->set('penkits', $this->VwPenKit->find('all')); 
} 

Вот код секции для индекса .ctp

<td><?php echo $penkit['VwPenKit']['kit_name']; ?> </td> 
     <td><?php echo $penkit['VwPenKit']['kit_description']; ?> </td> 
     <td><?php echo $penkit['VwBushing']['code']?></td> 
     <td><?php echo $penkit['VwPenKit']['modified']; ?> </td> 

Здесь ошибка при визуализации

Pen Kit Database Версия 0.1

Номер Kit Название Описание Проходные Модифицированные действия DK-PKCP8020 Bolt Action Pen (30 Cal)
Примечание (8): Undefined индекс: VwBushing [APP/View/VwPenKits/index.ctp, строка 46] 2015-04-07 11:00:00 Смотреть Редактировать Удалить Создано: Майк Марека

Контактная информация: [email protected]

© 2015 The Wood Artist Studio - Все права защищены также после того, как я понял, что мне нужен add.ctp и edit.ctp, которые создают список выбора, чтобы пользователь мог связать набор пера с его втулкой.

У меня нет достаточного статуса еще размещать изображения

Заранее спасибо Майк

ответ

0

Я действительно решил проблему, и это в основном было проблемой модели. Как только у меня были правильные отношения, все работает нормально.

Thanks Mike

0

Я не уверен на 100%, но он может иметь дело с вашим рекурсивным значением в вашей находке. Если он установлен в 0, он найдет только первый уровень. Вам нужно установить значение 1 или 2 в зависимости от глубины, которую вы хотите найти.

Я настоятельно рекомендую использовать ContainableBehaviour. Это сделает вашу жизнь намного проще.

См. here.

Смежные вопросы