Мне нужно встроить форму во всплывающее окно.
Я создал formType, контроллер и вид TWIG, содержащий всю отображаемую страницу и всплывающую форму.
I отобразил мою форму во всплывающем окне, все хорошо отображается, но ничего не происходит, когда я нажимаю c на кнопку отправки. Кажется, что отправка не обнаруживается при внедрении во всплывающем окне.
Вот моя форма:
namespace App\Form;
class MessageType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('text', TextareaType::class, [
'attr' =>[
'class'=>'with-border',
'cols'=> '10',
'placeholder'=> 'Message',
'name'=> 'textarea',
],
])
->add('save', SubmitType::class, [
'attr' =>['class'=>'button margin-top-35 full-width button-sliding-icon ripple-effect'],
])
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => Message::class,
]);
}
}
Вот часть контроллера, связанная с формой:
namespace App\Controller;
class FreelancerprofileController extends AbstractController
{
/**
* @Route("/freelancer/profile/{id}", name="freelancerprofile",requirements={"id" = "\d+"})
*/
public function index($id, Request $request)
{
$message = new Message();
$form = $this->createForm(MessageType::class, $message);
if ($form->isSubmitted() && $form->isValid())
{
$user = $this->getUser();
$receiver = $freelancer->getUser();
$messagetext = $form['message']->getData();
$message->setUser($user);
$message->setReceiver($receiver);
$message->setText($messagetext);
$message->setCreationdate(new \DateTime('now'));
return $this->render('freelancer/profile.html.twig', array(
//'freelancers' => $freelancers,
));
}
return $this->render('freelancer/profile.html.twig', [
'message' => $form->createView(),
]);
}
}
И это модал, включенный в вид TWIG:
<!-- Message Popup
================================================== -->
<div id="small-dialog" class="zoom-anim-dialog mfp-hide dialog-with-tabs">
<!--Tabs -->
<div class="sign-in-form">
<ul class="popup-tabs-nav">
<li><a href="#tab">Contact</a></li>
</ul>
<div class="popup-tabs-container">
<!-- Tab -->
<div class="popup-tab-content" id="tab">
<!-- Welcome Text -->
<div class="welcome-text">
<h3>Send message</h3>
</div>
{{ form_start(message) }}
<!-- Form -->
<form method="post">
{{ form_widget(message.text) }}
</form>
<!-- Button -->
{{ form_widget(message.save) }}
{{ form_end(message) }}
</div>
</div>
</div>
</div>
</div>
<!-- Message Popup / End -->