Я столкнулся с сохранением данных в базу данных с помощью Form в CakePHP 3.0.
//add.ctp
<div>
<?= $this->Form->create($deposit) ?>
<fieldset>
<legend><?= __('Add') ?></legend>
<?php
echo $this->Form->input('date');
echo $this->Form->input('profile_id', ['options' => $profiles]);
echo $this->Form->input('amnt');
echo $this->Form->input('desc');
echo $this->Form->input('user_id', ['options' => $users]);
?>
</fieldset>
<?= $this->Form->button(__('Submit')) ?>
<?= $this->Form->end() ?>
</div>
Вот моя функция добавления
public function add()
{
$deposit = $this->Deposits->newEntity();
if ($this->request->is('post')) {
$deposit = $this->Deposits->patchEntity($deposit, $this->request->data);
if ($this->Deposits->save($deposit)) {
$this->Flash->success(__('The member deposit has been saved.'));
return $this->redirect(['action' => 'index']);
} else {
$this->Flash->error(__('The member deposit could not be saved. Please, try again.'));
}
}
$profiles = $this->Deposits->Profiles->find('list', ['limit' => 200]);
$users = $this->Deposits->Users->find('list', ['limit' => 200]);
$this->set(compact('deposit', 'profiles', 'users'));
}
Когда я отправил форму, я нашел ниже ошибку синтаксиса базы данных
Ошибка: SQLSTATE[42000]: Синтаксическая ошибка или нарушение прав доступа: 1064 Ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, на предмет правильного синтаксиса для использования рядом с «описанием, идентификатором_пользователя, созданным, измененным») ЗНАЧЕНИЯ («2015-06-06», 7, «3211», «некоторый текст», 1, ' в строке 1
И SQL-запрос показывал:
ВСТАВИТЬ В member_deposits (дата, profile_id, amnt, desc, user_id, созданный, измененный) ЗНАЧЕНИЯ (:c0, :c1, :c2, :c3, :c4, :c5, :c6)
Я потратил много времени на решение проблемы с помощью Google и из Похожая запись, не повезло, но, потратив день, я нашел решение, просто настроив quoteIdentifiers на true.
По умолчанию параметру quoteIdentifiers присвоено значение false в config/app.php в разделе Источники данных вашего проекта торта.
desc
), либо измените имя столбца. - person crafter   schedule 06.06.2015