Повторяющаяся запись при попытке редактировать запись - PullRequest
0 голосов
/ 09 июля 2010

Когда я пытаюсь отредактировать запись ... она создает повторяющуюся запись в базе данных.

Я убедился, что добавляю скрытое поле идентификатора при переходе к форме редактирования.

Restaurant

RestaurantAttribute

RestaurantContact

это модели, которые я использую.

попытался повторно инициализировать id

$ this-> Restaurant-> id = $ this-> Restaurant-> id;

странно ... в БД лишней записи нет ...

но в торте ее отображается ..попытался очистить кеш .. все еще происходит

http://harshamv.com/files/screenshots/2010-07-07_1524.png

http://harshamv.com/files/screenshots/2010-07-07_1525.png

я разместил код здесь

http://forum.phpvideotutorials.com/showthread.php?p=81936

вот индексное действие http://bin.cakephp.org/view/660872993

вот модель http://bin.cakephp.org/view/1228539627

http://harshamv.com/files/screenshots/2010-07-10_0937.png

SQL Statement http://pastebin.com/EmdXmNeH

Модель ресторана http://pastebin.com/W1sLiL7W

Ответы [ 3 ]

1 голос
/ 13 июля 2010

Я получил ответ от Teknoid от MIRC.

В моем режиме редактирования я установил только Restaurant.id. ни один из идентификаторов связанных моделей не установлен в представлении.

По соглашению о торте нам нужно иметь идентификатор любой записи из обновления db u. так что это создавало дублирующую запись в связанных моделях.

В действии index, так как имеется JOIN связанных моделей. он создавал повторяющиеся записи из-за повторяющихся записей в связанной модели

путем добавления идентификаторов всех связанных записей модели. это решило проблему.

Спасибо всем за ваше время. Наконец мне удалось заставить его работать.

1 голос
/ 09 июля 2010

Если в приложении phpmyadmin отображается только одна запись, а в приложении - несколько записей, тогда у вас есть проблема с вашими отношениями.У меня было это раньше, и это всегда было плохое отношение.

0 голосов
/ 09 июля 2010

Проверьте, установлен ли столбец идентификатора в качестве первичного ключа, а также AUTOINCREMENT.Дублированные записи не могут быть вставлены, если это установлено.

Это

$this->Restaurant->id = $this->Restaurant->id; 

, не отмечая.не видел, чтобы вы сказали, что в БД записи в порядке.Затем:

  1. Проверьте, возвращает ли $ this-> paginate () эти дублированные записи - print_r () it.Если записи дублируются там, то вы портите отношения в моделях.Также измените параметр отладки на 2 и посмотрите, какие SQL генерируются.

  2. Если в проверке выше записи уникальны, то при отображении результатов $ вы что-то путаетерестораны

Я думаю, что это скорее первое предложение

...