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


Cakephp 3 Default Model not loaded in controller

我有一个控制器名称CodeBridgeController,并且有一个模型表名称CodeBridgeTable 。当我调用代码桥表时,如下所示:

$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();

什么可能造成问题,需要专家建议。

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

在骆驼情况下更改控制器名称后Router::url(array('controller' =>'CodeBridge','action'=>'edit'));生成网址"/cake3/erp/code-bridge/edit"

这解决了问题

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

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