У меня есть поле TextType, которое установлено ниже
Тип:
->add('zipCode',TextType::class, array(
'attr' => array('maxlength' => 10),
'required' => false,
'empty_data' => null
)
)
Когда данные загружаются из базы данных, поле становится пустым. Я просто пытаюсь отправить форму и получаю
Ожидаемый аргумент типа "string", задано значение "NULL".
у продавца / symfony / property-access / PropertyAccessor.php: 174 по адресу
Symfony \ Component \ PropertyAccess \ PropertyAccessor :: throwInvalidArgumentException ( "Довод
1 передается в App \ Entity \ Patients :: setZipCode () должен иметь тип
строка, пустая,
Я не уверен, как это исправить? Я ХОЧУ, чтобы значение было нулевым ...? Возможно, это потому, что я не загружаю исходные данные прямо в форму?
Связанный код ниже, дайте мне знать, если вам нужно что-то еще:
Twig:
{{ form_widget(view_form.zipCode, { 'attr': {'class': 'mb-2 mb-sm-0 w-100'} }) }}
Контроллер:
public function view(Request $request)
{
$patientId = $request->query->get('id');
if (!empty($patientId)) {
$search = $this->getDoctrine()
->getRepository(Patients::class)
->find($patientId);
if (is_null($search))
$this->addFlash('danger', 'Invalid Patient');
$form = $this->createForm(PatientViewType::class,$search);
}
else
$form = $this->createForm(PatientViewType::class);
dump($request);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$view = $form->getData()();
$entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($view);
$entityManager->flush();
$this->addFlash('success', 'Patient record updated successfully!');
}
return $this->render('patient/view.html.twig', [
'view_form' => $form->createView()
]);
}