我正在从CakePHP 3.10迁移到CakePHP 4.4。我的代码在以前版本的框架中运行良好。此时,我在控制器中调用时出现错误:“调用未定义的方法App\Model\Myrty\A1::getMyValue()”:$test->getMyValue()。$test是正确的App\Model\Myrty\A1 Object。什么是不正确的?以下是我的实体类:
namespace App\Model\Entity;
use Cake\ORM\Entity;
class A1 extends Entity{
protected $_accessible = ['*' => true,];
protected function _getMyValue(){
return 'AAA';
}
}
字符串
2条答案
按热度按时间30byixjq1#
如果公共方法对你的用例足够的话,尝试使用公共方法(而不是“魔术”虚字段),因为它只是简单的PHP,没有来自CakePHP的任何魔力。
字符串
如果您需要使用虚拟字段,请通过以下方式访问它:
_getMyValue()
->通过调用->my_value
https://book.cakephp.org/4/en/orm/entities.html#creating-virtual-fields访问cotxawn72#
我认为这本食谱中有一个陷阱。相同的页面但不同的主题。如果你想访问虚拟字段,你必须在实体类中使用$_virtual暴露它:
字符串
https://book.cakephp.org/4/en/orm/entities.html#exposing-virtual-fields