Реализуйте таблицы с символами подчеркивания ошибок: Неустранимая ошибка: вызов функции-члена

Когда я реализую таблицу с именем 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();
Другие вопросы по тегам