【问题标题】:Typo3 extbase input field arrayTypo3 extbase 输入字段数组
【发布时间】:2013-09-11 08:22:21
【问题描述】:

我正在写关于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

}

根据我的需要创建多个邀请邮件字段(数组)

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

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

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

【问题讨论】:

    标签: typo3 extbase


    【解决方案1】:

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

    但是在你的 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']
    }
    

    别忘了清理输入。

    【讨论】:

    • 我已经解决了这个问题。我通过手动创建对象来管理它 $newInvitefriend = new \TYPO3\Invitefriend\Domain\Model\Invitefriend();但我不知道如何清理输入。
    • 验证在这里不起作用:(。我添加了freeCap验证码,但它绕过了。有帮助吗?
    • 您能否澄清一下您对验证的含义以及您的方法是什么样的?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多