【问题标题】:Can not find cakephp model找不到 cakephp 模型
【发布时间】:2012-02-12 19:15:20
【问题描述】:

我在尝试让 cakephp 找到模型时遇到了极端问题。我已经在这个项目上工作了 4 个月,并创建了大量的模型,但由于某种原因,蛋糕找不到这个模型。至少是这样设置的

app/controllers/arbitrations_controller.php

<?php
class ArbitrationsController extends AppController {
    var $name = 'Arbitrations';        
}

app/models/arbitration.php

<?php
class Arbitration extends AppModel {
    var $name = 'Arbitration';
}

数据库名称:仲裁

错误信息

Controller::paginate() - 在控制器中找不到模型仲裁 ArbitrationsController [CORE\cake\libs\controller\controller.php,行 1102]

我已尝试清除 tmp/cache/modelstmp/cache/persistent

【问题讨论】:

  • 尝试清除/app/tmp 中的每个文件夹并再次运行代码
  • 是否定义了$this-&gt;Arbitration(在您的控制器中)?
  • 您是自己制作还是通过控制台制作这些文件的控制器、模型?如果您手动创建了这些文件,请尝试使用控制台创建它们。
  • @MarekSebera 我试过几次。我所做的是进入tmp/cache/models 并清除其中的所有内容以及tmp/cache/persisten
  • @Ehtesham 我没有尝试过控制台。我可以试一试。我只是希望这不会从现在开始发生

标签: php cakephp frameworks


【解决方案1】:

我让它工作了。我刚刚删除了我的arbitrations_controller.php 文件并重新创建它并且它工作。一定是某种故障什么的。我认为这可能与删除 tmp 文件并重新创建文件有关。

不知道是什么,但它浪费了我生命中的 3 个小时。

【讨论】:

  • 很高兴听到。它很容易在某个地方拼错。
【解决方案2】:

我刚刚使用 CakePHP v1.3.x 进行了设置,它使用脚手架开箱即用。您可以尝试以下几件事:

  1. 仔细检查所有内容的拼写。仲裁很容易 拼写错误。
  2. var $uses = array('Arbitration') 添加到顶部 控制器,看看是否有任何改变。
  3. 仔细检查控制器中的模型拼写 $this-&gt;Arbitration-&gt;recursive = -1;

如果所有这些都设置好并按预期工作,它应该可以工作。另一件要尝试的事情是将它加载到一个干净的应用程序中,看看它是否可以在独立环境中工作。

【讨论】:

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