Реализуйте таблицы с символами подчеркивания ошибок: Неустранимая ошибка: вызов функции-члена
Когда я реализую таблицу с именем example_a call:
- модель / объект: ExampleA.php
- модель / таблица: ExampleATable.php
- контроллер: ExampleAController.php
- Шаблон / Пример A: index.ctp
дает мне следующую ошибку:
Примечание (1024): Неопределенное свойство: ExampleAController:: $ ExampleA в C: Program Files …
Неустранимая ошибка: вызов функции-члена find () для логического значения
для печати списка объектов в контроллере реализуйте функцию:
public function index ()
{
$This->set('examples',$this->ExampleA->find('all'));
}
Я указываю, что эта таблица не имеет никакого отношения к другим таблицам
если вместо этого я сделаю то же самое, реализуя таблицу без подчеркивания, она работает
1 ответ
Основная проблема здесь в том, что вы отклонились от соглашений 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();