Я пытаюсь создать простую форму с помощью Symfony версии 3.4.
Я только что создал тип клиента для формы, контроллер клиента для управления созданием клиента и объекта клиента.
Это код для метода buildForm:
$builder->add('firstName', TextType::class)
->add('lastName', TextType::class)
->add('save', SubmitType::class, ['label' => 'Add Client'])
;
Это код сущности клиента:
/**
* @ORM\Entity(repositoryClass="App\Repository\ClientRepository")
*/
class Client
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=255)
*/
private $firstName;
/**
* @ORM\Column(type="string", length=255)
*/
private $lastName;
public function getId(): ?int
{
return $this->id;
}
public function getFirstName(): ?string
{
return $this->firstName;
}
public function setFirstName(string $firstName): self
{
$this->firstname = $firstName;
return $this;
}
форма отображается правильно, и когда я отправляю ее, данные передаются клиенту следующим образом:
client[firstName] Mario
client[lastName] Rossi
client[save]
client[_token] 3cqO2C63eLhKrcBdvSYgyT5qXwNBVL7T5fYvhGWRkYQ
но когда я var_dump объект, поступающий из $form->getData()
в обработчик контроллера, я получаю этот массив:
object(App\Entity\Client)#385 (5) { ["id":"App\Entity\Client":private]=> NULL ["firstName":"App\Entity\Client":private]=> NULL ["lastName":"App\Entity\Client":private]=> NULL ["firstname"]=> string(5) "Mario" ["lastname"]=> string(5) "Rossi" }
Как видите, ключи camelCased имеют значение NULL, но вместо этого данные хранятся в ключах, отличных от camelCased (имя и фамилия), и поэтому я получаю сообщение об ошибке от Doctrine / SQL, в котором жалобы на столбцы не могут быть NULL.
Есть подсказка? Благодаря.