问题描述
如何在 cakePHP4.2 的模型中访问另一个模型?我不清楚有关此问题的文档,然后我可以对此进行查询? TableRegistry 现已弃用。
error UnkNown method "getTableLocator" called on App\Model\Table\LessonsTable
//none of these no longer work
in model {
use Cake\ORM\Locator\LocatorAwareTrait;
class LessonsTable extends Table
{
..
private function getlessonRevenue(){
//$clients = $this->getTableLocator()->get('Clients');
// $cleints = TableRegistry::get('Clients');
// $this->Table = TableRegistry::get('Clients');
$clients = $this->getTableLocator()->get('Clients');
https://api.cakephp.org/4.0/class-Cake.ORM.TableRegistry.html
解决方法
试试:
<?php
use Cake\ORM\Locator\LocatorAwareTrait; //<------------ add here
class ArchivesTable extends Table
{
use LocatorAwareTrait; // <--------------------------- and add here
public function myMethod()
{
$clients = $this->getTableLocator()->get('Clients');
}
并阅读https://book.cakephp.org/4/en/orm/table-objects.html#using-the-tablelocator
并学习如何使用 php trait https://www.phptutorial.net/php-tutorial/php-traits/