当我尝试以表格形式传递我的电话号码以使用api ovh发送短信时遇到问题,表格外部的电话号码我可以找回,但在内部却给我发送了空值。 谢谢您的帮助:
public function sendSmsAction(Request $request)
{
$listphoneNumber = $request->get('telephone');
var_dump($listphoneNumber); // it returns an array phone numbers
try{
$form = $this->createForm(smsFormType::class);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$message = $form->get('message')->getData();
$smsProvider = $this->get('app.sms.provider');
var_dump($listphoneNumber); // it returns null
$smsProvider->sendMessage($message, $listphoneNumber);
}
} catch (InvalidParameterException $e) {
sprintf("Erreur lors de l'envoie de SMS, il faut choisir un utilisateur : %s . Trace : %s", $e->getMessage(), $e->getTraceAsString()
);
throw $e;
}
return $this->render('CeUtilisateurBundle:Utilisateur:sms.html.twig', array(
'form' => $form->createView()));
}
答案 0 :(得分:0)
我解决了问题
控制器
public function sendSmsAction(Request $request)
{
try{
$form = $this->createForm(smsFormType::class, array('telephone' => $request->get('telephones')));
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$message = $form->get('message')->getData();
$smsProvider = $this->get('app.sms.provider');
$phoneNumbers=$form->getConfig()->getData();
$smsProvider->sendMessage($message, $phoneNumbers);
}
} catch (InvalidParameterException $e) {
sprintf("Erreur lors de l'envoie de SMS, il faut choisir un utilisateur : %s . Trace : %s", $e->getMessage(), $e->getTraceAsString()
);
throw $e;
}
return $this->render('CeUtilisateurBundle:Utilisateur:sms.html.twig', array(
'form' => $form->createView()));
}
formType
class smsFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('telephone', HiddenType::class, array(
'data' => $options['telephone'],
))
->add('message', TextareaType::class, array(
'attr' => ['class' => 'tinymce',
'placeholder' => 'Votre message',
],
'label' => false,
'required' => true))
->add('Envoyer', SubmitType::class, array(
'attr' => array(
'class' => 'btn btn-primary',
)
));
}
/**
* {@inheritdoc}
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'telephone' => null
));
}
}