2014-02-05 4 views
0

Я ударил головой о стену над этим. У меня есть модель Sku, которая принадлежит модели Purchase. Мой AppModel имеетCakephp Containable не работает вообще

Внутри SkuController, когда я делаю $this->Sku->find('all', array('contain' => 'Purchase')); Я не получаю покупку. Я искал много старых вопросов здесь и в других местах в Интернете, но просто не могу решить эту проблему. Чтобы проверить, загружается ли Containable поведение, я редактировал ContainableBehavior.php в lib \ Cake \ Model \ Behavior, чтобы сделать его недопустимым php-файлом, но это не вызвало ошибок. Что за черт!

Вот SQL от отладки:

ВЫБРАТЬ Sku. id, Sku. purchase_id, Sku. item_id, Sku. upc, Sku. quantity_avail, Sku. per_unit_price_amt, Sku. do_not_delete, Sku. created, Sku. modified, (concat ('SK', lpad (Sku. id, 8, '0'))) AS Sku__idFormatted ОТ sellble. skus AS Sku ГДЕ 1 = 1 ЗАКАЗАТЬ Sku. id убывание

CakePHP версия: 2.4.4

+0

Является Sku модель, связанная с покупкой? –

+0

Да, это связано – vikc

+0

Используете ли вы 'actAs' или соответствующую переменную' actAs'? Являются ли ваши назначения переменных общедоступными, т. Е. 'Public $ actAs = array ('Containable');'? Если вы удалите рекурсивный параметр, возвращаются ли данные о покупке в вашу находку (только для проверки связи)? Если вы создаете отражение своей модели, переносит ли она массив, содержащий «Containable» в переменном actAsAs? –

ответ

1

Не уверен, если это отличается в разных версиях, но я всегда указан содержать в массиве, и отлично работает для меня.

$this->Sku->find('all', array('contain' => array('Purchase'))); 

Или для отображения только полей или условий, которые вы хотите:

$this->Sku->find('all', 
    array('contain' => array(
     'Purchase' => array(
      'fields' => Purchase.name 
      'conditions' => array(
        Purchase.name = 'somename' 
       ) 
      ) 
     ) 
    ) 
); 
+0

попробовал оба, но это не помогло .. Я просто думаю, что ContainableBehavior даже не загружается – vikc

+0

В вашей $ actAs есть опечатка, которая должна быть $ actAs. В противном случае ваша конфигурация выглядит точно так же, как моя, поэтому извините, что не может помочь значительно дальше, почему она не загружается. – JamesLee

+0

О, боже мой! Я должен быть слепым .. Ty Ty Ty .. Так стыдно видеть эту глупую ошибку, и, конечно, это эти хромые ошибки, которые делают жизнь программиста несчастной .. Тай снова – vikc

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