如何在 EasyAdminBundle 上处理 Twig 中的数组变量?
How to deal with array vars in Twig on EasyAdminBundle?
我有这个实体定义:
class Operator
{
...
/**
* @var array
* @ORM\Column(type="text", nullable=true)
*/
private $prefix;
/**
* @param $prefix
* @return $this
*/
public function addPrefix($prefix)
{
if (!in_array($prefix, $this->prefix, true)) {
$this->prefix[] = $prefix;
}
return $this;
}
/**
* @param array $prefixes
* @return $this
*/
public function setPrefix(array $prefixes)
{
$this->prefix = array();
foreach($prefixes as $prefix) {
$this->addPrefix($prefix);
}
return $this;
}
/**
* @return array The prefixes
*/
public function getPrefix()
{
$prefix = is_array($this->prefix) ? $this->prefix : ['04XX'];
return array_unique($prefix);
}
...
}
我正在使用 EasyAdminBundle 在后端管理这个实体,所以这里是它的配置:
easy_admin:
entities:
Operator:
class: PlatformAdminBundle\Entity\Operator
...
form:
fields:
...
- { property: 'prefix', label: 'prefix' }
任何时候我尝试创建一个新的 Operator
我 运行 进入这个错误:
ContextErrorException: Notice: Array to string conversion
我找不到问题出在哪里,因为我在继承自 BaseUser
(来自 FOSUser)的 User
实体上使用相同的方法并且它有效。这是 User
实体的样子并且应该与 Operator
:
相同
我错过了什么?可以给我一些建议吗?我卡住了!
Orm前缀列应该是数组类型。
/**
* @var array
* @ORM\Column(type="array", nullable=true)
*/
private $prefix;
和运行
php app/console doctrine:schema:update --force
我有这个实体定义:
class Operator
{
...
/**
* @var array
* @ORM\Column(type="text", nullable=true)
*/
private $prefix;
/**
* @param $prefix
* @return $this
*/
public function addPrefix($prefix)
{
if (!in_array($prefix, $this->prefix, true)) {
$this->prefix[] = $prefix;
}
return $this;
}
/**
* @param array $prefixes
* @return $this
*/
public function setPrefix(array $prefixes)
{
$this->prefix = array();
foreach($prefixes as $prefix) {
$this->addPrefix($prefix);
}
return $this;
}
/**
* @return array The prefixes
*/
public function getPrefix()
{
$prefix = is_array($this->prefix) ? $this->prefix : ['04XX'];
return array_unique($prefix);
}
...
}
我正在使用 EasyAdminBundle 在后端管理这个实体,所以这里是它的配置:
easy_admin:
entities:
Operator:
class: PlatformAdminBundle\Entity\Operator
...
form:
fields:
...
- { property: 'prefix', label: 'prefix' }
任何时候我尝试创建一个新的 Operator
我 运行 进入这个错误:
ContextErrorException: Notice: Array to string conversion
我找不到问题出在哪里,因为我在继承自 BaseUser
(来自 FOSUser)的 User
实体上使用相同的方法并且它有效。这是 User
实体的样子并且应该与 Operator
:
我错过了什么?可以给我一些建议吗?我卡住了!
Orm前缀列应该是数组类型。
/**
* @var array
* @ORM\Column(type="array", nullable=true)
*/
private $prefix;
和运行
php app/console doctrine:schema:update --force