【问题标题】:Cakephp Contain Associations not working from alternative controllersCakephp 包含无法从替代控制器工作的关联
【发布时间】:2015-03-11 10:15:16
【问题描述】:

当我从相应的控制器调用 find 方法时,我的模型关联设置正确,并且数据正在以我想要的方式回购。但是,当我从另一个控制器加载模型并调用 model->find 时,它只返回模型数据而不是其关联数据。

我已经尝试了一些方法来解决这个问题,包括$this->Model->Behaviors->load('Containable'),但仍然没有运气。

【问题讨论】:

  • 格式化代码,改进语法/拼写:您可能会发现包含更多代码(但尽量保持简洁)可能有助于潜在的回答者更好地理解您的问题。

标签: php cakephp model-view-controller model cakephp-2.3


【解决方案1】:
$this->Model->find('all' , array('recursive' => -1));

【讨论】:

  • 那也没什么区别
  • 你只想找到没有关联模型的数据模型,递归=>-1 如果它的 -1 则 find 方法只检索没有关联模型的数据。但是我认为我没有很好地理解您的问题:)
  • 是的,我认为你错过了理解 - 我想返回所有相关数据
  • 这也没什么区别。当您使用已加载的模型时,它的可包含性似乎无法正常工作,但对于相应的模型却可以正常工作。
  • 例如工作正常 class User extends AppModel { assosiations... } class UsersController extends AppController { find.... }
【解决方案2】:

幸运的是,我发现这个问题确实令人尴尬。当我加载我的模型时,我没有在它前面加上插件名称。

所以是的...如果你想确保你的 Containable 关联将在你从其他来源(非对应的控制器,shell 类)加载到你的模型时被继承,你必须确保你在模型名称前加上它插件名称(如果适用)当然。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多