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 调用时:
- model/entity: ExampleA.php
- model/table: ExampleATable.php
- 控制器:ExampleAController.php
- Template/ExampleA: index.ctp
给我以下错误:
通知 (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();
当我实现一个名为 example_a 的 table 调用时:
- model/entity: ExampleA.php
- model/table: ExampleATable.php
- 控制器:ExampleAController.php
- Template/ExampleA: index.ctp
给我以下错误:
通知 (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();