插入/更新蛋糕php

时间:2012-12-18 19:18:34

标签: php cakephp insert

你好所有我都陷入了一个奇怪的位置。

我有一个包含列的表。 id_acces,id_user,id_menu,has_access(boolean)

我基本上有一个带有复选框和ID号列表的表单,以允许访问特定用户的页面部分。基本上我需要更新具有访问权限的表,如果用户没有关于选择用于在表中创建新条目的页面的条目。所以我回来的阵列看起来像这样

     Array
       (
        [AdminMenu] => Array
          (
            [id_user] => 1
            [id_menu] => Array
            (
                [4] => enabled
                [21] => enabled
                [22] => enabled
                [23] => enabled
                [24] => enabled
                [1] => enabled
                [5] => enabled
                [25] => enabled
                [26] => enabled
                [6] => enabled
                [7] => enabled
                [29] => enabled
                [8] => enabled
                [30] => enabled
                [31] => enabled
                [32] => enabled
                [33] => enabled
                [34] => enabled
                [35] => enabled
                [36] => enabled
                [37] => enabled
                [38] => enabled
                [39] => enabled
                [40] => enabled
                [41] => enabled
                [60] => enabled
                [2] => enabled
                [10] => enabled
                [11] => enabled
                [12] => enabled
                [13] => enabled
                [14] => enabled
                [15] => enabled
                [16] => enabled
                [17] => enabled
                [18] => enabled
                [9] => enabled
                [3] => enabled
                [19] => enabled
                [20] => enabled
            )

           )

    )

键是id_menu,如果选中复选框,则该值就是。

有人可以请告诉我如何使用这个数组来插入或更新蛋糕php到我的表。我当前循环遍历数组$ key => $ value并对表运行查询以确定存在的键。如果它存在然后我需要运行更新查询,如果没有然后我需要为该特定页面或id_menu执行插入查询。请帮忙

    foreach($this->data['AdminMenu']['id_menu'] as $key=>$value) {
          $check = select against the table where the id_menu = $key
       if($key = $check[0]['AdminAccess']['id_menu']) {
             $this->AdminAcess->id_menu=$key;
     $this->AdminAccess->id_user=$user_id;
     $this->AdminAccess->set('has_access', 't');
     $this->AdminAccess->save();
        } else {
           $this->AdminAcess->id_menu=$key;
    $this->AdminAccess->id_user=$user_id;
    $this->AdminAccess->saveField('has_access', 'false');

         }

    }

我确定这个循环必须有一个更简单的方法。另外我如何进行插入或更新。这甚至不会以任何方式插入或更新

1 个答案:

答案 0 :(得分:0)

这是hasAndBelongsToMany关系。您应该仔细阅读Cake Book的这一部分,并根据他们的建议调整您的表单代码:

http://book.cakephp.org/2.0/en/models/saving-your-data.html#saving-habtm