Что означает вызов функции-члена по логическому значению и как исправить

Я новичок в cakePHP 3. Я создал контроллер и модель, где я вызываю функцию, чтобы получить всех пользователей из базы данных. Но когда я запустил код ниже, я получу следующую ошибку: «Вызовите функцию-член get_all_users () на boolean» .

что означает эта ошибка и как я могу это исправить?

User.php (модель)

namespace App\Model\Entity; use Cake\ORM\Entity; class User extends Entity { public function get_all_users() { // find users and return to controller return $this->User->find('all'); } } 

UsersController.php (контроллер)

 namespace App\Controller; use App\Controller\AppController; class UsersController extends AppController { public function index() { // get all users from model $this->set('users', $this->User->get_all_users()); } } 

Related of "Что означает вызов функции-члена по логическому значению и как исправить"

Обычно эта ошибка возникает, когда используется несуществующее свойство контроллера.

Таблицы, которые соответствуют имени контроллера, не обязательно должны быть загружены / установлены в свойство вручную , но даже они не существуют изначально, при попытке доступа к ним вызывает вызов метода magic getter для контроллеров, который используется для ленивой загрузки класса таблицы который принадлежит контроллеру, и он возвращает false при ошибке, и вот где это происходит, вы будете называть метод логическим.

https://github.com/cakephp/…/blob/3.0.10/src/Controller/Controller.php#L339

В вашем случае проблема заключается в том, что User (единственное, для сущностей) не соответствует ожидаемым Users (множественное число, для таблиц), поэтому не может быть найден соответствующий класс таблицы.

Ваш собственный метод должен идти в классе таблицы, а не в классе UsersTable , который вам следует получить через

 $this->Users 

Возможно, вы захотите перечитать документы, сущности не запрашивают данные (если вы, например, не выполняете ленивую загрузку), они представляют собой набор данных!