我创建了一个DataExtension来扩展我的SiteConfig。
在我的扩展程序中,我有一个onBeforeWrite函数
public function onBeforeWrite() {
parent::onBeforeWrite();
/* FILL SHOP EMAIL FIELDS */
if(! $this->ShopEmail ){
$this->ShopEmail = 'foo';
}
if(! $this->ShopFromEmail ) {
$this->ShopFromEmail = $this->ShopEmail;
}
if(! $this->ShopReplyEmail ) {
$this->ShopReplyEmail = $this->ShopEmail;
}
/* SHOW ADD TO CART BUTTON IF THERE IS NO ITEMDETAIL PAGE */
if( $this->ShopItemDetailPage == 0 ) {
$this->ShopDirectItemToCart = 1;
}
}
这个功能刚刚起作用。 使用if子句,我收到一条通知,指向onBeforeWrite函数的第一行。没有它就什么都不做。
为什么会这样,我该如何解决?
先谢谢你
答案 0 :(得分:4)
由于您处于DataExtension
而不是DataObject
,因此需要注意一些不同之处。
第一个,也就是导致你的错误的那个,就是父类没有onBeforeWrite
,所以调用parent::onBeforeWrite()
试图调用一个未定义的方法并抛出一个致命的错误。
第二个只会引发警告的是,数据库字段未在DataExtension
上定义,因此您需要使用$this->owner
来访问它们。例如,$this->owner->ShopEmail
。