Поле выбора CakePHP HABTM в режиме редактирования не заполняется

Я чувствую, что схожу с ума. Обычно я могу понять эти вещи, но этот действительно застрял. Я использую торт 2.3.7. Я заметил ошибку в более ранних версиях CakePHP.

Надеюсь, кто-то может указать, где я ошибаюсь. На моем сайте есть статьи, которые имеют 3 ассоциации HABTM> Мухи, реки и озера. Так:

Статья - HABTM - Летучая статья - HABTM - Речная статья - HABTM - Озеро

Контроллер:

...
$flies = $this->Article->Fly->find('list');
$lakes = $this->Article->Lake->find('list');
$rivers = $this->Article->River->find('list');
$this->set(compact('flies', 'lakes', 'rivers'));

Вид:

echo $this->Form->input('Fly');
echo $this->Form->input('Lake');
echo $this->Form->input('River');

Этот синтаксис выглядит точно так же, как описано в руководствах по CakePHP 2.x, и он работает в моей локальной тестовой системе, но как только я загружаю его на свой сервер, происходит сбой.

Любая помощь в этом будет принята с благодарностью, и дайте мне знать, если потребуется дополнительная информация.


person Keith Lugthart    schedule 10.06.2015    source источник
comment
Также было бы полезно, какая версия торта находится в вашей локальной тестовой системе и на сервере, если они одинаковы, то ваша проблема довольно странная.   -  person Royalty    schedule 10.06.2015
comment
У меня есть CakePHP как на тестовой системе (MAMP/Mac), так и на сервере (Bluehost.com). Может ли это быть версия PHP на сервере (5.4)?   -  person Keith Lugthart    schedule 11.06.2015
comment
Я не думаю, что у вас есть правильная версия торта... Я не думаю, что версия 3.2.7 еще не вышла... можете уточнить?   -  person Royalty    schedule 15.06.2015
comment
Привет, Роялти, спасибо и отличный улов. Это дислексическая опечатка... ;) Итак, и на моей локальной машине, и на сервере я запускаю CakePHP 2.3.7. Я также обновил выше.   -  person Keith Lugthart    schedule 15.06.2015
comment
Вы получаете какие-либо ошибки на вашем сервере (bluehost)? Вы когда-нибудь заглядывали в журналы ошибок, которые создает торт?   -  person Royalty    schedule 15.06.2015
comment
Я еще раз дважды проверил, все журналы приложений (отладка/ошибка) остаются чистыми. Я все еще запускаю приложение в режиме разработки (полное ведение журнала). На сервере тоже ничего не вижу в логе.   -  person Keith Lugthart    schedule 15.06.2015
comment
Можете ли вы продолжить и повторить мой ответ? Помимо этого, есть ли еще что-то плохое на сервере? Обе версии PHP одинаковы? Ваша папка tmp доступна для записи?   -  person Royalty    schedule 16.06.2015
comment
Я хочу пнуть себя!! Я решил, что проблема должна быть связана с окружающей средой, учитывая, что она работала на одной системе. Поэтому я хочу вернуться и внимательно посмотрел на оба окружения. Хотя у меня на сервере был установлен CakePHP 2.3.7, у меня также была старая версия 2.3.0, и каким-то образом мое приложение было указано на нее.   -  person Keith Lugthart    schedule 16.06.2015


Ответы (3)


Для ассоциаций HABTM ваши поля формы должны быть:

echo $this->Form->input('Fly.Fly');
echo $this->Form->input('Lake.Lake');
echo $this->Form->input('River.River');

В противном случае то, что вы делаете в контроллере, выглядит правильно.

person drmonkeyninja    schedule 10.06.2015
comment
Спасибо, drmonikeyninja, я попробовал это, и, к сожалению, ничего не изменилось. - person Keith Lugthart; 11.06.2015

Почему вы не кормите параметры ввода? Вот так

echo $this->Form->input('Fly',array('options'=>$flies));
echo $this->Form->input('Lake',array('options'=>$lakes));
echo $this->Form->input('River',array('options'=>$rivers));
person Royalty    schedule 10.06.2015
comment
Спасибо за эту рекомендацию. К сожалению, это тоже не сработало. - person Keith Lugthart; 11.06.2015

На сервере, на который я загружался, каким-то образом была копия CakePHP 2.3.0, и приложение указывало на нее. В CakePHP есть известная ошибка, которая вызывает это.

Спасибо всем, кто ответил.

person Keith Lugthart    schedule 16.06.2015