2016-10-25 17 views
0

hello У меня есть форма редактирования, которая отображает введенные поля. Я показываю данные из базы данных в этих полях, чтобы пользователь мог их редактировать. А также есть кнопка, которая просит добавить новое поле. Я могу редактировать несколько полей, но проблема заключается в том, как я могу создать новое поле в базе данных, если нет существующего идентификатора записи. Примечание: для нового поля я отправляю 0 id, чтобы я мог проверить в cakephp, что у него есть новое поле.Cakephp Обновление нескольких записей или создание нового, если id не существует в базе данных

foreach ($exp as $k => $v) { 
    $dat[$k]["prp_id"] = $prpid; 
    $dat[$k]["exp_company"] = $v['company']; 
    $dat[$k]["position"] = $v['position']; 
    $dat[$k]["exp_id"] = $v['exp_id']; 
} 

$this->Experience->saveAll($dat, array('conditions' => array('exp_id' => $v['exp_id']))); 

Это обновление всех полей. Btw Я также не уверен, почему он работает правильно, поскольку я здесь $v['exp_id'], отправляя только одно значение, потому что он вышел из цикла, но он отлично работает, я могу иметь возможность использовать несколько полей, которые я не уверен, как это сделать. Итак, у меня есть две проблемы. Один из них заключается в создании новой записи, если exp_id - 0, и, во-вторых, мой код работает хорошо для обновления записей.

ответ

0

Попробуйте это:

foreach ($exp as $k => $v) { 
    $dat[$k]["prp_id"] = $prpid; 
    $dat[$k]["exp_company"] = $v['company']; 
    $dat[$k]["position"] = $v['position']; 

    if ($v['exp_id'] != 0) { 
    $dat[$k]["exp_id"] = $v['exp_id']; 
    } 
} 

$this->Experience->saveAll($dat); 
+0

Его не обновляя его. Он создает новые записи – hellosheikh

+0

Могу ли я увидеть результат отладки массива $ dat. Я хочу посмотреть, нужно ли проверять это условие в цикле foreach. –

+0

см. Обновленный ответ .. –

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

  • Нет связанных вопросов^_^