2013-09-11 6 views
0

Я пишу маленькое приглашение расширения друга на typo3 6.1.3. Вот что мне нужно, я могу отправить приглашение друзьям, добавив туда электронный адрес в текстовое поле. После отправки нажатием кнопки «Отправить» этот человек получит сообщение и этот адрес электронной почты будет сохранен в базе данных.Typo3 extbase полевое поле ввода

Так моя база данных выглядит следующим образом

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 /> 

, и я могу добавить новое поле столько, сколько захочу. поэтому, отправив эту форму, отдельные записи для каждого адреса электронной почты должны быть созданы в бэкэнд.

Как мы можем достичь этого? Любая помощь? Спасибо

ответ

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'] 
} 

Не забудьте дезинфицировать вход.

+0

Я решил это уже. Мне удалось создать объект вручную, как этот $ newInvitefriend = new \ TYPO3 \ Invitefriend \ Domain \ Model \ Invitefriend(); Но я не понял, как дезинфицировать входные данные. –

+0

Валидация здесь не работает :(Я добавил freeCap captcha, но ее обход. Любая помощь? –

+0

Не могли бы вы пояснить, что вы имеете в виду под валидацией и как выглядит ваш подход? – lorenz