Typo3 extbase输入字段数组

时间:2013-09-11 08:22:21

标签: typo3 extbase

我正在写一篇关于typo3 6.1.3的朋友扩展名。 我需要的是,我可以通过在文本字段中添加电子邮件地址向朋友发送邀请。按下提交按钮发送后,该人将收到一条消息,该电子邮件地址将保存在数据库中。

所以我的数据库看起来像这样

CREATE TABLE tx_myext_domain_model_mytable(
uid int(11) NOT NULL auto_increment,
pid int(11) DEFAULT '0' NOT NULL,
invitemail varchar(255) DEFAULT '' NOT NULL
)

我的创建动作如下所示

public function createAction(\TYPO3\Myext\Domain\Model\Myext $newInvitefriend) {
$this->invitefriendRepository->add($newInvitefriend);

/*
* Email Part
*/

$emailTo = $newInvitefriend->getInvitemail();
//send mail

}

根据我的需要创建,多个invitemail字段(arrray)

<input type="text" name="tx_myext_invitefriend[newInvitefriend][invitemail][]"><br />
<input type="text" name="tx_myext_invitefriend[newInvitefriend][invitemail][]"><br />

我可以根据需要添加新字段。 因此,通过提交此表单,应在后端创建每个电子邮件地址的单独记录。

我们怎样才能做到这一点? 有帮助吗? 谢谢

1 个答案:

答案 0 :(得分:0)

使用开箱即用的功能无法做到这一点。

但是在你的createAction中,你可以得到请求参数:

$newInviteFriends = $this->request->getArguments('newInvitefriend');

然后遍历inviteFriends

foreach ($newInviteFriends as $newInviteFriend) {
   $newInviteFriend = $this->objectManager->create('\Vendor\Extension\Domain\Model\Modelname');
   $newInviteFriend->setInvitemail($newInviteFriend['invitemail']);
   $this->sendInviteMail($newInviteFriend['invitemail']
}

不要忘记清理输入。