我尝试从一个实体调用许多setter,但我有错误NULL对象。
当我这样做时:
$appEventUser
->setApiToken($apiToken)
->setCreationDate(new \DateTime())
->setSubType('SIGNED')
->setSignedType('IN');
我有这个错误:
Call to a member function setSignedType() on a non-object
但是,如果我尝试以下代码就可以了:
$appEventUser
->setApiToken($apiToken)
->setCreationDate(new \DateTime())
->setSubType('SIGNED');
$appEventUser->setSignedType('IN');
答案 0 :(得分:1)
您必须在setSubType
setter:
public function setSubType($subtype){
$this->subType = $subtype ;
return $this // this line is missing
}
您收到该消息是因为setSubType()
没有返回任何内容(或技术上说是NULL)因此无法调用“无”的方法。
答案 1 :(得分:0)
它被称为method chaining。
如果setSubType()
未返回$this
,则之后您将无法在同一个对象上调用其他方法。
答案 2 :(得分:0)
如果您想链接方法,方法setSubType
应返回$this
。