在symfony实体中获取和设置下划线

问题描述 投票:1回答:2

在我的实体中,我有一个带变量名下划线的字段,如下所示:

/**
 * @ORM\Column(type="text", nullable=true)
 */
private $value_text;

并且,例如,get函数:

public function getValueText()
{
    return $this->value_dec;
}

有了这个,symfony就抛出了一个异常:

Neither the property "value_text" nor one of the methods "value_text()", "getvalue_text()"/"isvalue_text()" or "__call()" exist and have public access in class "AppBundle\Entity\MyEntity".

所以我改变了函数名,添加了下划线,但是当我想添加一行时,symfony会抛出相同的错误,但另一方面 - 它忽略了下划线,并寻找像getValueText()这样的函数。

为什么会这样?我已经使两个函数做同样的事情,我的代码工作,但当然我认为有一个更好的方法来做到这一点,而不是加倍功能。

php symfony doctrine-orm doctrine twig
2个回答
1
投票

试着用这个:

public function getValue_dec() {
    return $this->value_dec;
}

但惯例是使用驼峰情况,所以这更好:

/**
 * @ORM\Column(type="text", nullable=true)
 */
private $valueDec;

public function getValueDec()
{
    return $this->valueDec;
}

0
投票

Symfony使用camelCase作为属性命名约定。

这是Naming Conventions的官方文档

阅读更多相关文章

[PropertyInfo] Implement Naming Strategy for Properties

Added support for non-camel-case variable code conventions #29

© www.soinside.com 2019 - 2024. All rights reserved.