0

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

  • 模型/实体:ExampleA.php
  • 模型/表格:ExampleATable.php
  • 控制器:ExampleAController.php
  • 模板/示例A:index.ctp

给我以下错误:

注意(1024):未定义的属性:ExampleAController :: $ ExampleA in C: Program Files ...</p>

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

要打印控制器中的对象列表,请实现一个功能:

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

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

相反,如果我做同样的事情来实现一个没有下划线的表格,它就可以工作

4

1 回答 1

0

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

首先要做的是告诉框架你的 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();
于 2019-11-29T11:06:54.600 回答