Implement tables with error underscores: Fatal error: Call to a member function

Implement tables with error underscores: Fatal error: Call to a member function

当我实现一个名为 example_a 的 table 调用时:

给我以下错误:

通知 (1024): 未定义 属性: ExampleAController :: $ ExampleA in C: Program Files …

致命错误:调用成员函数 find () on boolean

打印控制器中的对象列表实现函数:

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

我指定这个table与其他table没有任何关系

如果我做同样的事情实现 table 不带下划线它就可以工作

这里的主要问题是您偏离了 CakePHP conventions,这很好,但意味着您需要做一些额外的工作。

要做的第一件事是告诉框架你的 Table 和实体 class 叫什么。在你的ExampleATable.php文件中的initialize()方法中,你需要设置table、实体和其他东西。

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

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

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

// Use the table instance to query
$query = $ExampleATable->find();