数据库将性别字段存储为smallint。 Easyadmin根据实体属性渲染字段。 我不会简单地放一个字符串。 “男”而不是1。
我尝试覆盖AdminController并覆盖createEditForm()
和createEntityFormBuilder()
之类的方法,但最终导致
“对成员函数handleRequest()
的调用为空”
easy_admin:
entities:
User:
controller: App\Controller\CustomAdminController
class: App\Entity\User
form:
title: "Details"
fields:
- { property: 'userProfile.gender', type: 'text', label: 'Gender',
type_options:{ disabled: true, required: false} }
答案 0 :(得分:0)
您可以尝试更改getGender()
和setGender()
方法来处理实体中的转换。
public function getGender(): ?string
{
if (0 === $this->gender){
return 'Female';
}
if (1 === $this->gender){
return 'Male';
}
if (2 === $this->gender){
return 'Other';
}
}
public function setGender(string $gender): self
{
if ('female'=== strtolower($gender)){
$this->gender = 0;
} else if ('male'=== strtolower($gender)){
$this->gender = 1;
} else {
$this->gender = 2;
}
return $this;
}
答案 1 :(得分:0)
我切换到SonataAdmin捆绑包,这提供了一种正确完成此操作的简便方法。