在我的实体中,我有一个变量名称中带有下划线的字段,如下所示:
/**
* @ORMColumn(type="text", nullable=true)
*/
private $value_text;
例如,获取函数:
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 "AppBundleEntityMyEntity".
所以我更改了函数名称,添加了下划线,但是当我想添加一行时,symfony 会抛出相同的错误,但以另一种方式 - 它忽略了下划线,并寻找像 getValueText(( 这样的函数。
为什么会这样?我已经做了两个函数做同样的事情,我的代码有效,但当然我认为有更好的方法来做到这一点,而不会使函数加倍。
尝试使用这个:
public function getValue_dec() {
return $this->value_dec;
}
但是惯例是使用骆驼大小写,所以最好这样:
/**
* @ORMColumn(type="text", nullable=true)
*/
private $valueDec;
public function getValueDec()
{
return $this->valueDec;
}
Symfony使用camelCase作为属性命名约定。
这是命名约定的官方文档
阅读更多相关文章
[属性信息] 实现属性的命名策略
添加了对非驼峰大小写变量代码约定的支持 #29