我在尝试为CraftCMS(基于YII框架的CMS)编写插件时遇到了一些麻烦。我试图创建一个简单的字段类型,我要在一个矩阵块内使用。到目前为止,我的字段类型类的公共函数getinputhhtml只包含一个
var_dump($this->element)
它显示了我,如预期的:
object(Craft'MatrixBlockModel)#1121 (25) {
["elementType":protected]=>
string(11) "MatrixBlock" [.......]
问题是,当我试图改变前面的
时var_dump($this->element)
与
var_dump($this->element->getOwner())
(或MatrixBlockModel类的任何其他方法/属性),我获得:
"在非对象上调用成员函数getOwner() "
我唯一的想法是,它可能与神奇的方法__call()有关,覆盖在MatrixBlockModel继承的类中(实际上,父的父的父…)。但是,试着看一下它的代码,它似乎不是这样的。
很可能是你建议的__call。如果您这样做会发生什么:
$var = $this->element;
var_dump($var);
var_dump($var->getOwner());
我有一种预感,如果你把它分配给一个临时变量,可能会解决这个问题。