cakephp: обновить связанную таблицу belogsTo

Я обновляю свою модель розничного продавца, которая принадлежит к модели адреса, когда я создаю новую запись, она легко создает новую строку для адреса и вставляет свой ключ в модель розничного продавца:

Вид:

echo $this->Form->create('Retailer');
echo $this->Form->input('Name');
echo $this->Form->input('Address.add_line1');
echo $this->Form->input('Address.add_line2');
echo $this->Form->end('Submit');

Модель (продавец):

public $belongsTo = 'Address';

RetailersController->добавить()

$this->Retailer->create();
$this->Retailer->saveAll($this->request->data);

Однако, когда я попытался обновить Retailer, модель Retailer обновилась, но вместо обновления предыдущей записи адреса она создала новую запись и поместила свой ключ в таблицу Retailer:

RetailersController->edit($id = null)
$this->Retailer->id = $id;
$this->Retailer->saveAll($this->request->data);

Я также пробовал это, но не работал:

RetailersController->edit($id = null)
$post = $this->Retailer->findById($id);
$this->Retailer->id = $id;
$this->request->data['Retailer']['address_id'] = $post['Retailer']['address_id'];
$this->Retailer->saveAll($this->request->data);

person Shivam    schedule 31.07.2014    source источник


Ответы (1)


Вероятно, вам просто нужно сообщить ему идентификатор адреса.

echo $this->Form->input('Address.id');

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

person jeremyharris    schedule 31.07.2014
comment
Спасибо, у меня это работает, хотя я указал значение идентификатора адреса в контроллере вместо представления: - $this->request->data['Address']['id'] = $post['Retailer']['address_id'] - person Shivam; 31.07.2014