gpt4 book ai didi

cakephp - 在CakePHP中为一个模型保存多个记录

转载 作者:行者123 更新时间:2023-12-04 13:17:46 25 4
gpt4 key购买 nike

我想为一个模型保存几条记录。如果不是问题,使用saveAll()可以很容易地做到这一点:

我有一个通知表单,在这里我从<select>和两个字段中分别选择多个用户作为主题和内容。现在,当我输出$this->data包含的内容时,我有:

Array([Notification] => Array
(
[user_id] => Array
(
[0] => 4
[1] => 6
)

[subject] => subject
[content] => the-content-here
)
)

我已经读过Cake 1.3的书,为了保存一个模型的多个记录,您必须使用 $this->data之类的东西:
Array([Article] => Array(
[0] => Array
(
[title] => title 1
)
[1] => Array
(
[title] => title 2
)
)
)

那么,如何将主题和内容“共享”给所有选定的用户?

最佳答案

首先,此数据库设计需要规范化。

在我看来,Notification可以具有许多与之相关的User。同时,User可以具有许多Notification。所以,

  • 介绍一个名为users_notifications的联接表。
  • 实现HABTM关系:通知 hasAndBelongsToMany 用户

  • 在 View 中,您只需使用以下代码即可自动调出多选表单以获取用户ID:
    echo $this->Form->input('User');

    发送到 Controller 的数据将采用以下形式:
    Array(
    [Notification] => Array
    (
    [subject] => subject
    [content] => contentcontentcontentcontentcontentcontent
    ),
    [User] => Array
    (
    [User] => Array
    (
    [0] => 4
    [1] => 6
    )
    )
    )

    现在,您要做的就是调用saveAll()函数而不是save()。
    $this->Notification->saveAll($this->data);

    这就是做蛋糕的方法!

    关于cakephp - 在CakePHP中为一个模型保存多个记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4260445/

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