cakephp 3.8 хранить данные ajax в базе данных - PullRequest
0 голосов
/ 12 июля 2019

Я пытаюсь сохранить данные ajax в базе данных в cakephp 3.8.

Данные выглядят так:

enter image description here

Данные означают 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'

    }
]
...