加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

在CakePHP中保存一个模型的多个记录

发布时间:2020-12-13 16:01:34 所属栏目:PHP教程 来源:网络整理
导读:我想为一个模型保存几条记录.如果没有出现问题,可以使用saveAll()轻松完成此操作: 我有一个通知表单,我从 select中选择多个用户和两个领域,分别为主题和内容.现在,当我输出$this-数据包含的内容时,我有: Array([Notification] = Array ( [user_id] = Array
我想为一个模型保存几条记录.如果没有出现问题,可以使用saveAll()轻松完成此操作:

我有一个通知表单,我从< select>中选择多个用户和两个领域,分别为主题和内容.现在,当我输出$this->数据包含的内容时,我有:

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

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

我读过Cake 1.3的书,为了保存模型的多个记录,你必须得到$this->数据:

Array([Article] => Array(
        [0] => Array
            (
                        [title] => title 1
                    )
        [1] => Array
            (
                        [title] => title 2
                    )
            )
)

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

首先,这个数据库设计需要规范化.

在我看来,像Notification可以有很多与之相关的用户.同时,用户可以拥有许多通知.因此,

>引入名为users_notifications的连接表.
>实施HABTM关系:通知hasAndBelongsToMany用户

在视图中,您只需使用以下代码自动调出多选表单以获取用户ID:

echo $this->Form->input('User');

发送到控制器的数据将采用以下形式:

Array(
    [Notification] => Array
        (
            [subject] => subject
            [content] => contentcontentcontentcontentcontentcontent
        ),[User] => Array
        (
            [User] => Array
                (
                    [0] => 4
                    [1] => 6
                )
         )
)

现在,您所要做的就是调用saveAll()函数而不是save().

$this->Notification->saveAll($this->data);

这就是Cake的做法!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读