Silverstripe 3.1-数据扩展中的BetterButtons自定义操作
是否有方法将自定义按钮添加到具有更好按钮的成员对象?我正在用一个DataExtension扩展Member对象,我想在其中创建一个BetterButtons自定义操作 这是我的代码和收到的错误Silverstripe 3.1-数据扩展中的BetterButtons自定义操作,silverstripe,Silverstripe,是否有方法将自定义按钮添加到具有更好按钮的成员对象?我正在用一个DataExtension扩展Member对象,我想在其中创建一个BetterButtons自定义操作 这是我的代码和收到的错误 private static $better_buttons_actions = array( 'createAccountPdf' ); public function getBetterButtonsActions(){ $fields = parent::g
private static $better_buttons_actions = array(
'createAccountPdf'
);
public function getBetterButtonsActions(){
$fields = parent::getBetterButtonsActions();
if( $this->owner->Accounts()->Count() > 0 ){
$fields->push(BetterButtonCustomAction::create('createAccountPdf', 'Datenblatt erstellen')->setSuccessMessage('PDF Datenblatt mit Zugangsdaten wurde erstellt.'));
}
return $fields;
}
错误:
Fatal error: Call to undefined method DataObject::getBetterButtonsActions() in /_website/_dev/mysite/code/Extensions/ClientMemberExtension.php on line 128
我还用$this->owner,Member:,DataObject::代替了parent::getBetterButtonsActions(),这听起来很合理,因为扩展的父级没有名为“getBetterButtonsActions”的方法 从BetterButtonDataObject中的代码中,我看到DataExtension中已经有一个用于更新ButtonActions的钩子 尝试:
谢谢你的尝试,但还是不行。在代码中,我会收到“对非对象的成员函数push()的调用”,如果我添加“$fields=parent::getBetterButtonsActions();”或者使用updateBetterButtonsActions,我收到了“对未定义方法DataExtension::getBetterButtonsActions()的调用”哦,我的坏消息。我们只有变量$actions可用(在函数中定义),所以请尝试$actions->push。。。
public function updateBetterButtonsActions(&$actions) {
if( $this->owner->Accounts()->Count() > 0 ){
$actions->push(BetterButtonCustomAction::create('createAccountPdf', 'Datenblatt erstellen')->setSuccessMessage('PDF Datenblatt mit Zugangsdaten wurde erstellt.'));
}
}