带有错误下划线的实现表:致命错误:调用成员函数

问题描述 投票:0回答:1

当我实现一个名为example_a的表时:

  • 模型/实体:ExampleA.php
  • 模型/表格:ExampleATable.php
  • 控制器:ExampleAController.php
  • Template / ExampleA:index.ctp

给我以下错误:

通知(1024):未定义的属性:ExampleAController :: $ C中的ExampleA:程序文件…

致命错误:在布尔值上调用成员函数find()

打印控制器中的对象列表实现功能:

 public function index ()
 {
     $This->set('examples',$this->ExampleA->find('all'));
 }

我指定此表与其他表没有任何关系

如果我在执行不带下划线的表时做同样的事情,则它起作用

php cakephp cakephp-3.0 camelcasing cakephp-3.8
1个回答
0
投票
这里的主要问题是您偏离了CakePHP conventions,这很好,但是这意味着您需要做一些额外的工作。

要做的第一件事是告诉框架您的Table和Entity类被调用什么。在ExampleATable.php方法的initialize()文件中,您需要设置表,实体和其他内容。

<?php public function initialize(array $config) { $this->setTable('example_a'); $this->setAlias('ExampleA'); $this->setEntityClass(\App\Model\Entity\ExampleA::class); //etc

第二,在您的控制器中,我们需要手动加载Table类,因为它与控制器不匹配。

// Get or create a table instance $ExampleATable = $this->getTableLocator()->get('ExampleA'); // Use the table instance to query $query = $ExampleATable->find();

© www.soinside.com 2019 - 2024. All rights reserved.