Я пытаюсь обновить ActivityNote и поле для Контакта, которому он принадлежит.
class ActivityNote extends AppModel {
public $name = 'ActivityNote';
public $actsAs = array('Containable');
public $belongsTo = array(
'ActivityType' => array('className' => 'ActivityType', 'foreignKey' => 'activity_type_id'),
'Contact' => array('className' => 'Contact', 'foreignKey' => 'contact_id', 'dependent' => true),
'User' => array('className' => 'User', 'foreignKey' => 'user_id'));
}
Вид выглядит следующим образом
<tr class="altrow">
<td><?php echo $this->Form->input('activity_type_id', array('label' => false)); ?></td>
<td><?php echo $this->Form->input('copy', array('label' => false, 'type' => 'checkbox', 'disabled' => is_null($secondaryId))); ?></td>
<td><?php echo $this->Form->input('Contact.prospect', array('label' => false, 'type' => 'checkbox')); ?></td>
<td colspan="2"><?php echo $this->Form->input('activity_date', array('label' => false, 'dateFormat' => 'DMY', 'minYear' => date('Y')-1, 'maxYear' => date('Y')+1)); ?></td>
</tr>
Я добавил поле Contact.prospect, оно показывает нормально, если отмечено или нет, проблема в том, что я не могу его обновить.
И контроллер
function edit($id, $primaryId, $secondaryId = null) {
if(!$id) {
$this->Session->setFlash(__(''));
$this->redirect(array('action' => 'index'), null, true);
}
if (!empty($this->request->data) && isset($this->request->data['ActivityNote']['text'])) {
$this->ActivityNote->create();
if ($this->ActivityNote->save($this->request->data)) {
if (isset($this->request->data['ActivityNote']['copy_id'])) {
// also update copy if exits - apart from contact_id and copy_id all other fields identical
$this->request->data['ActivityNote']['id'] = $this->request->data['ActivityNote']['copy_id'];
$this->request->data['ActivityNote']['contact_id'] = $secondaryId;
$this->ActivityNote->create();
$this->ActivityNote->save($this->request->data);
}
$this->Session->setFlash(__(''), 'default', array('class' => 'success'));
$this->redirect(urldecode($this->request->data['ActivityNote']['url']));
} else {
$this->Session->setFlash(__(''));
}
}
$url = (isset($this->request->data['url']))? $this->request->data['url'] : $this->Session->read('Activity.url');
$this->Session->write('Activity.url', $url);
$this->request->data = $this->ActivityNote->read(null, $id);
$activityTypes = $this->ActivityNote->ActivityType->find('list', array('fields' => array('ActivityType.id', 'ActivityType.value')));
$contact = $this->Contact->findById($primaryId);
$this->request->data['Contact'] = $contact['Contact'];
debug($this->request->data);
$this->ActivityNote->saveAssociated($this->request->data, array('deep'=>TRUE));
debug($this->request->data['Contact']['prospect']);
$contactTypes = $this->Contact->ContactType->find('list', array('fields' => array('ContactType.id', 'ContactType.value')));
$contactName = ($primaryId)? $contact['Contact']['name'] : '';
$users = $this->Contact->User->find('list', array('fields' => array('User.id', 'User.name')));
$this->set(compact('url', 'activityTypes', 'users','primaryId', 'contactName', 'secondaryId', 'contact'));
}
И это массив запроса-> данных, в который я добавил контакт, который я извлек с идентификатором.
array(
'ActivityNote' => array(
'id' => '4400',
'copy_id' => null,
'contact_id' => '126',
'created' => '2017-11-15 12:02:32',
'modified' => '2019-09-29 11:55:29',
'activity_date' => '2017-11-10',
'user_id' => '0',
'activity_type_id' => '3',
'text' => '',
'follow_up' => false,
'follow_up_date' => '2019-09-28',
'completion_date' => null
),
'Contact' => array(
'id' => '126',
'created' => '2012-05-03 14:11:56',
'modified' => '2019-09-29 11:18:28',
'creator_id' => '1',
'provider_id' => null,
'user_id' => '4',
'company_name' => '',
'first_name' => '',
'middle_names' => '',
'last_name' => '',
'contact_type_id' => '2',
'company_reg' => '',
'debitor_no' => null,
'creditor_no' => null,
'employee_no' => null,
'c_o' => '',
'address1' => '',
'address2' => '',
'zip' => '',
'city' => '',
'country' => '',
'address_type_id' => null,
'phone_code' => '45',
'phone_number' => '',
'cell_code' => '45',
'cell_number' => '',
'email' => '',
'website' => '',
'location' => '',
'status_id' => '7',
'prospect' => true,
'customer' => false,
'supplier' => false,
'staff' => false,
'note' => '',
'apartment_qty' => '192',
'message' => null,
'full_name' => '',
'name' => '',
'full_address' => '',
'full_phone' => '',
'full_cell' => '',
'phones' => ' / '
)
)
Что я сделал, чтобы получить контакт, которыйActivityNote принадлежит, добавьте его в запрос-> данные и затем сохраните Ассоциированный.ActivityNote обновляется, а контакт - нет.Я попытался сохранить все, тоже самое происходит