gpt4 book ai didi

php - Symfony 表单数据未格式化为驼峰式

转载 作者:搜寻专家 更新时间:2023-10-31 20:57:12 25 4
gpt4 key购买 nike

我正在尝试使用 Symfony 3.4 版创建一个简单的表单。

我刚刚为表单创建了一个客户端类型,一个客户端 Controller 来处理客户端和一个客户端实体的创建。

这是 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

但是当我在 Controller 处理程序中 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" } 

如您所见,驼峰式键为 NULL,但数据存储在非驼峰式键中(名字和姓氏),因此我收到来自 Doctrine/SQL 的错误,提示列不能为 NULL。

关于这个有什么线索吗?谢谢。

最佳答案

在聊天讨论中,代码已完整链接,我注意到两个 setter 中的拼写错误:

public function setFirstName(string $firstName): self
{
$this->firstname = $firstName;
// ^ should be a capital N

return $this
}

对于 setLastName

也是一样的

关于php - Symfony 表单数据未格式化为驼峰式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55749919/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com