【问题标题】:Where should I add data for an associated model in cakephp-3我应该在 cakephp-3 中为关联模型添加数据的位置
【发布时间】:2015-06-10 12:57:34
【问题描述】:

我想在我的用户注册帐户时为他们创建一些默认实体,一个很好的例子是个人资料,最初不会有来自用户注册表单的数据,但所有用户实体都应该有一个个人资料创建它似乎仍然合适。

在您说“但没有数据,所以只需在您的控制器/视图中处理这个问题”之前 - 是的,我知道,但并非我的所有用例都允许这样做,有些需要空/默认数据。

在保存之前,这是否应该从我的控制器中的注册表中添加到数据中?对我来说,似乎更合乎逻辑的是,我的模型中应该有一些内容表明有效用户有个人资料,并且如果没有数据可以创建一些(可能使用用户名作为个人资料全名)。

  1. 这是否可以在 beforeSave 回调或控制器中实现?

  2. 为了正确保存相关实体,我需要在 patchEntity 中具有最低要求吗(我当前的尝试在调试中使用了配置文件,但没有我认为我正在设置的数据,因此没有任何保存)

非常感谢

【问题讨论】:

    标签: model-view-controller associations cakephp-3.0


    【解决方案1】:

    我希望你的问题是正确的。

    1. 是的,为什么不可能呢?只需创建一个关联的 (http://book.cakephp.org/3.0/en/orm/saving-data.html#saving-with-associations) 条目并将字段设置为可为空。

    2. 要保存相关信息,您应该遵循惯例 user(id,name,pw,...) profile(id,user_id,...) 以确保用户只有一个配置文件,您可以使 user_id 唯一.

    【讨论】:

    • 我更喜欢哪种方法更适合第 1 点,而不是如果可能(抱歉英语不好)第 2 点我目前无法添加数据 - 我正在这样做@ 987654322@
    • 完全取决于您要存档的内容。大多数人说某事。像“大模型->平面控制器”。所以我建议在控制器中执行此操作...但不是在 beforeSave 中执行此操作(每次将某事保存到模型时都会调用它),您可以在执行此操作的模型中实现 saveUserWithDefaultProfile() 。我不会挖掘您的 pastebin 代码... stackoverflow 不适合此类特定问题,您可能可以通过阅读文档或谷歌搜索几秒钟来回答自己。保存相关数据就像在一百万个教程中一样。
    猜你喜欢
    • 2015-11-30
    • 1970-01-01
    • 1970-01-01
    • 2017-08-14
    • 1970-01-01
    • 1970-01-01
    • 2015-12-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多