【问题标题】:CakePHP Models - why isn't it for 1 item?CakePHP 模型 - 为什么不是 1 项?
【发布时间】:2011-08-08 20:46:22
【问题描述】:

我已经浏览了模型文档,但无法找到如何针对 1 个项目构建模型....例如,我希望当前用户模型具有 addOpenId($openIdHash),但如果没有我该怎么做必须将用户 ID 传递给函数?

我正在寻找类似...的东西

$user = $this->SobForm->get($userId);
$user->addOpenId($openIdHash);

我是说,CakePHP 似乎是围绕不控制单个元素的模型构建的,所以控制器可以有一个函数“$user->getAllUsers()”,而对我来说,这不是一个模型,那是经理,或助手。我如何在 CakePHP 中使用一个模型,它是单数的,所以它只影响 1 个项目,或者只包含与单个项目相关的函数而不是影响所有项目的函数。

是否支持这种功能,还是我必须从头开始构建它?

【问题讨论】:

  • 你能解释清楚吗?我没有太多...
  • 并非如此。简单的响应:创建一个只影响一个项目的模型。是你建立你的模型。根据需要创建它们。
  • 我必须自己构建它吗?单个项目的数据是否随时都存储在模型中,或者我是否需要为此添加支持?
  • 您应该创建一个访问数据库的模型,只影响其中一项。我认为没有预制的东西。

标签: php cakephp


【解决方案1】:

SobForm 对我来说似乎非常熟悉...我认为您要做的是将 $user 的变量视为一个类,但事实并非如此。模型是一个类,控制器也是一个类,但是作为数据库查询结果的单个变量不能是一个类。你可以做的是类似$user = $this->OpenIdHelper->add($user,$openIdHash) 并让它返回添加了openId 的新数组,然后我假设你会在上面做一个$this->SobForm->save($user)? (PS 你在 Summaries 项目上工作吗?)你也可以添加自己的自定义函数来保存或更新模型中的某些数据,或者你可以做一个$this->SobForm->saveField('fieldname','data'); 来只保存一个数据字段而不是再次保存所有数据,如果你有首先设置的id。

【讨论】:

    猜你喜欢
    • 2014-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多