Я пытаюсь создать приложение с Zend 2.3. Он основан на (и очень похож на) Album application учебника Zend. Однако мое приложение касается объектов Person вместо объектов Album.Нужно ли имена столбцов сопоставлять имена переменных в Zend?
Когда я начал, я дал своему столбцу id имя «ID», а не «id», как в учебнике. Следовательно, моя функция extractArray в классе Person выглядела так:
public function exchangeArray($data)
{
$this->id = (isset($data['ID'])) ? $data['ID'] : null; // <- DB column name is ID, not id
$this->name = (isset($data['name'])) ? $data['name'] : null;
$this->initials = (isset($data['initials'])) ? $data['initials'] : null;
$this->title = (isset($data['title'])) ? $data['title'] : null;
$this->description = (isset($data['description'])) ? $data['description'] : null;
$this->email = (isset($data['email'])) ? $data['email'] : null;
}
Я не мог заставить это работать. Добавление или удаление Лица прошло гладко. Но когда я попытался отредактировать Личность, он рассматривался как вставка. После нескольких часов отладки все, что я смог установить, это то, что где-то во время проверки формы идентификатор объекта Person становится нулевым, в результате чего в ферме полагают, что запись является новой, а не редактируемой. Я действительно не знаю, как быть более точным. Я не делал ничего с оценкой формы, это точно так же, как образец приложения Album.
После того, как я изменил имя столбца на «id» и обновил код соответственно, все работает. Это, казалось бы, указывает ... что именно? Эти имена DB должны быть более строчными? Вряд ли. Эти имена БД должны совпадать с именами переменных? Скорее всего, но мне кажется странным.
Мой вопрос: что пошло не так с моей первой попытки и был ли другой способ исправить это, кроме изменения имени столбца?
Пожалуйста, подумайте о том, чтобы показать больше кода, например, «editAction», «AlbumForm», «AlbumModel» ... –