gpt4 book ai didi

arrays - CakePhp foreach 仅保存数组中的最后一个值

转载 作者:行者123 更新时间:2023-12-02 04:17:54 24 4
gpt4 key购买 nike

我有一个问题,现在我在 CakePhp 上使用这个 foreach 循环,我想在其中添加仍然不在相关用户的表中的所有值。为了提供更多上下文,用户有一个菜单。管理员可以选择添加哪一个供用户使用。在下一个代码中,我收到一个包含菜单的数组,该菜单将按如下方式添加:

//This is what comes on the ['UserMenuAccessibility'] array:
Array ( [menu_accessibility_id2] => 2 [menu_accessibility_id3] => 3 [menu_accessibility_id4] => 4 [menu_accessibility_id5] => 5 [menu_accessibility_id8] => 8 )

我获取了要添加到表中供用户使用的菜单的 ID。如果菜单仍然不存在,我使用下一个代码将菜单添加到表中:

//I check if the array has something cause it can come with no ids.    
if (!(isset($this->request->data['UserMenuAccessibility']))) {
$this->request->data['UserMenuAccessibility'] = array();
}

$UserMenuAccessibility = $this->request->data['UserMenuAccessibility'];

foreach ($UserMenuAccessibility as $key => $value) {

$conditions = array(
'UserMenuAccessibility.menu_accessibility_id' => $value,
'UserMenuAccessibility.users_id' => $id
);

if ($this->User->UserMenuAccessibility->hasAny($conditions)) {

} else {
$valuemenu['UserMenuAccessibility']['users_id'] = $id;
$valuemenu['UserMenuAccessibility']['menu_accessibility_id'] = $value;
if ($this->User->UserMenuAccessibility->save($valuemenu)) {

} else {
$this->Session->setFlash(__('The user could not be saved. Please, try again.'));
}
}
}

出于某种原因,数组仅保存不在表中的最后一个新 ID,而不保存其余的 ID。例如,如果我有菜单 1 和 2,然后添加 3 和 4,则只有 4 个会添加到表中。由于某种原因,我无法将所有缺少的菜单 ID 添加到表中。有什么想法为什么会发生这种情况吗?

感谢您提前提供的帮助。

最佳答案

看起来您的代码将保存每个项目,但每次调用save()正在覆盖添加为 $this->User->UserMenuAccessibility->id 的最后一个条目在第一次保存后设置,并将用于后续保存。尝试调用$this->User->UserMenuAccessibility->create()每次保存之前确保模型数据已重置并准备好接受新数据:-

$valuemenu['UserMenuAccessibility']['users_id'] = $id;
$valuemenu['UserMenuAccessibility']['menu_accessibility_id'] = $value;
$this->User->UserMenuAccessibility->create();
if ($this->User->UserMenuAccessibility->save($valuemenu)) {
}

关于arrays - CakePhp foreach 仅保存数组中的最后一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32540517/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com