cakephp 3.8在数据库中存储ajax数据

时间:2019-07-11 21:07:00

标签: ajax cakephp-3.0

我正在尝试将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'

    }
]

0 个答案:

没有答案