2016-08-14 2 views
0

У меня есть следующие функции:CakePHP 3.3.0 не обновляет таблицу hasOne

public function edit($id = null) 
{ 
    $resident = $this->Residents->get($id, [ 
     'contain' => [ 'ResidentGeneral' ] 
    ]); 
    if ($this->request->is(['patch', 'post', 'put'])) { 
     $resident = $this->Residents->patchEntity($resident, $this->request->data); 
     if ($this->Residents->save($resident)) { 
      $this->Flash->success(__('The resident has been saved.')); 
       return $this->redirect(['action' => 'index']); 
     } else { 
      $this->Flash->error(__('The resident could not be saved. Please, try again.')); 
     } 
    } 

    $titles = $this->Residents->ResidentGeneral->Titles->find('list', ['limit' => 200]); 
    $sexes = $this->Residents->ResidentGeneral->Sexes->find('list', ['limit' => 200]); 
    $maritalStatuses = $this->Residents->ResidentGeneral->MaritalStatuses->find('list', ['limit' => 200]); 
    $rooms = $this->Residents->ResidentGeneral->Rooms->find('list', ['limit' => 200]); 
    $nationalities = $this->Residents->ResidentGeneral->Nationalities->find('list', ['limit' => 200]); 
    $ethnicOrigins = $this->Residents->ResidentGeneral->EthnicOrigins->find('list', ['limit' => 200]); 

    $this->set(compact('resident', 'titles', 'sexes', 'maritalStatuses', 'rooms', 'nationalities', 'ethnicOrigins')); 
    $this->set('_serialize', ['resident']); 
} 

Функция добавь идентична, за исключением

 $resident = $this->Residents->get($id, [ 
     'contain' => [ 'ResidentGeneral' ] 
    ]); 

быть вместо

$resident = $this->Residents->newEntity(); 

и $ id = null отсутствует в верхней части.

Теперь функция добавления будет правильно сохранена в базе данных и в таблице «Жильцы общего пользования» без какой-либо проблемы, однако изменение не будет обновляться, они используют ту же форму, что и все соглашения сохраняются.

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

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

Любая помощь будет фантастической, так как я на один этап от разбитого ПК.

+0

У меня сберегательные проблемы объединения (belongsToMany) также в 3.3, вернулся в 3.2.14, и она работала. Я не знаю, почему, тот же код. –

+0

Я нашел то же самое на другом компьютере разработчика, он мог редактировать с 3.2.X, но не с 3.3.X, есть ли возможная проблема с ядром? – B1scuit

+0

Просто попробовал с новой установкой с 2 ​​столами и hasOne между ними, то же самое, без обновления контента, вызовет проблему на github – B1scuit

ответ

2

он уже закреплен на основной ветке и будет исправлена ​​в CakePHP 3.3.1

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