CakePHP 4 找不到 Finder 方法

cakephp 4 cannot find a finder method

提问人:R0bertinski 提问时间:9/30/2023 更新时间:10/24/2023 访问量:25

问:

我在我的CarsTable.php中有一个名为“findActive”的查找器方法,我从另一个控制器调用它:VehiclesController.php

汽车表.php

    public function findActive(Query $query, array $options): Query
       { ..... }

控制器车辆控制器 .php

 $carsTable = TableRegistry::getTableLocator()->get('cars');
 $activeCars = $carsTable->find('active');

在我将其迁移到蛋糕 4 之前,它工作正常。有什么线索吗?

cakephp-4.x

评论

0赞 Salines 9/30/2023
任何调试输出?
1赞 Greg Schmidt 10/1/2023
尝试。我猜它实际上不是你的 CarsTable 类。也许是因为你应该改用?debug(get_class($carsTable));->get('Cars')
0赞 R0bertinski 10/2/2023
是的,这就是问题所在,骆驼案!!在蛋糕 3 中它工作正常,似乎 4 更敏感。

答:

0赞 wowDAS 10/24/2023 #1

请尝试以下操作

  • 在 CamelCase 中编写模型: TableRegistry::getTableLocator()->get('cars') -> TableRegistry::getTableLocator()->get('cars')
  • 检查命名空间、.php 文件扩展名和文件的位置是否正确。
  • 检查您在 findActive 中的查询是否正确(我假设是这种情况) - 签名看起来不错