Cakephp 3默认模型未加载到控制器中

时间:2016-01-25 08:09:03

标签: php cakephp cakephp-3.0

我有一个控制器名称CodeBridgeController,并且有一个模型表名CodeBridgeTable。 当我按照以下方式调用CodeBridge表时:

$this->CodeBridge->find('all')->toArray();

这会生成Error: Call to a member function find() on a non-object File D:\php\htdocs\cake3\erp\src\Controller\CodeBridgeController.php Line: 25 我认为这是愚蠢的事情,但我在代码中找不到任何错误,为什么在这种情况下没有加载表。 当我这样打电话时,它可以工作。

$codeBridgeTable = TableRegistry::get('CodeBridge'); $results = $codeBridgeTable->find('all')->hydrate(false)->toArray();

可能会产生问题,需要专家建议。

2 个答案:

答案 0 :(得分:3)

最后,我找到了问题所在。 在控制器操作中,我生成如下的URL: 生成网址Router::url(array('controller' =>'codebridge','action'=>'edit'));

/cake3/erp/codebridge/edit

在驼峰案例Router::url(array('controller' =>'CodeBridge','action'=>'edit'));中更改控制器名称后生成url' / cake3 / erp / code-bridge / edit`

这解决了问题

答案 1 :(得分:-1)

要解决此问题,只需在尝试使用之前加载模型:

$this->loadModel("CodeBridge");
$this->CodeBridge->find('all')->toArray();