У меня есть отношение событий 1: M к датам событий.В классе EventForm я встраиваю формы EventDate следующим образом:
$this->embedRelation('EventDate', array('title' => 'dates', 'empty_label' => 'New'));
и заполняю начальные данные в формах редактирования следующим образом:
public function updateDefaultsFromObject()
{
parent::updateDefaultsFromObject();
$i = 1;
$values = array();
foreach ($this->object->getEventDates() as $obj)
{
$values[$i] = array(
'EventID' => $this->object->getPrimaryKey(),
'EventDateID' => $obj->getEventDateId(),
'startDateTime' => $obj->getStartDateTime(),
'endDateTime' => $obj->getEndDateTime());
$i++;
}
$this->setDefault('dates', $values);
}
Проблема заключается в том, когда он пытаетсячтобы сохранить, я получаю:
Unable to execute UPDATE statement [UPDATE EventDates SET EVENTDATEID=:p1
WHERE EventDates.EVENTDATEID IS NULL ] [wrapped: SQLSTATE[HY000]: General
error: 8102 General SQL Server error: Check messages from the SQL Server
[8102] (severity 16) [(null)]]
Ошибка MSSql 8102 в том, что он пытается обновить столбец идентификатора, который EVENTDATEID.Я понятия не имею, почему он это делает.Кроме того, у меня есть чувство, судя по выражению update, что в $ this-> object-> getEventDates () есть пустой объект, который он пытается обновить.Если бы я мог как-то это исправить, я предполагаю (см .: молитесь), что это исправит эту ошибку.