Я пытаюсь сохранить данные ajax в базе данных в cakephp 3.8.
Данные выглядят так:
Данные означают 2 флажка, со скрытыми вводами.
Я использую следующий код ajax:
var formData = menuItem;
var formUrl = $('#nav-menu-meta').attr('action');
$.ajax({
type: 'POST',
url: formUrl,
data: formData,
success: function(response,textStatus,xhr) {
console.log('test ', response);
},
error: function(xhr,textStatus,error) {
console.error(textStatus, error);
}
});
public function addmenuitems() {
if ($this->request->is('ajax')) {
$this->autoRender = false;
$this->response->disableCache();
}
if ($this->request->is('post')) {
$menuitemTable = TableRegistry::getTableLocator()->get('menuitems');
$menuitems = $menuitemTable->newEntities($this->request->getData());
foreach ($menuitems as $menuitem) {
if ($menuitemTable->save($menuitem)) {
$response = $this->response->withType('application/json')
->withStringBody(json_encode($menuitem));
return $response;
}else{
$message = 'Error';
}
}
}
}
Данные вообще не сохраняются, так что мне не хватает?
Я добавил массив данных отладки из функции getData (), чтобы показать, что содержится в массиве:
/src/Controller/Admin/Web/MenusController.php (line 109)
[
(int) 0 => object(App\Model\Entity\MenuItem) {
'menu_item_object_id' => (int) 2,
'menu_item_title' => 'Home',
'menu_item_slug' => 'home',
'menu_item_parent_id' => (int) 0,
'menu_item_target' => false,
'menu_item_position' => (int) 0,
'[new]' => true,
'[accessible]' => [
'*' => true,
'id' => false,
'menu-item-object_id' => true,
'menu-item-parent_id' => true,
'menu-item-position' => true,
'lft' => true,
'rght' => true,
'menu-item-title' => true,
'menu-item-slug' => true,
'menu-item-target' => true
],
'[dirty]' => [
'menu_item_object_id' => true,
'menu_item_title' => true,
'menu_item_slug' => true,
'menu_item_parent_id' => true,
'menu_item_target' => true,
'menu_item_position' => true
],
'[original]' => [],
'[virtual]' => [],
'[hasErrors]' => false,
'[errors]' => [],
'[invalid]' => [],
'[repository]' => 'menuitems'
},
(int) 1 => object(App\Model\Entity\MenuItem) {
'menu_item_object_id' => (int) 3,
'menu_item_title' => 'Nieuw',
'menu_item_slug' => 'nieuw',
'menu_item_parent_id' => (int) 0,
'menu_item_target' => false,
'menu_item_position' => (int) 0,
'[new]' => true,
'[accessible]' => [
'*' => true,
'id' => false,
'menu-item-object_id' => true,
'menu-item-parent_id' => true,
'menu-item-position' => true,
'lft' => true,
'rght' => true,
'menu-item-title' => true,
'menu-item-slug' => true,
'menu-item-target' => true
],
'[dirty]' => [
'menu_item_object_id' => true,
'menu_item_title' => true,
'menu_item_slug' => true,
'menu_item_parent_id' => true,
'menu_item_target' => true,
'menu_item_position' => true
],
'[original]' => [],
'[virtual]' => [],
'[hasErrors]' => false,
'[errors]' => [],
'[invalid]' => [],
'[repository]' => 'menuitems'
}
]