Twig没有调用对象属性的getter方法

时间:2013-11-18 11:11:05

标签: symfony twig

I have this class,


class SecurityStat
{

    /**
     * @var integer
     */
    private $number_of_holders;

    /**
    * Set number_of_holders
    *
    * @param integer $numberOfHolders
    * @return SecurityStat
    */
    public function setNumberOfHolders($numberOfHolders)
    {
      $this->number_of_holders = $numberOfHolders;

      return $this;
    }

    /**
    * Get number_of_holders
    *
    * @return integer 
    */
    public function getNumberOfHolders()
    {
      return $this->number_of_holders;
    }

}


Acme\DemoBundle\Entity\SecurityStat:
  type: entity
  table: security_stats
  id:
    id:
      type: integer
      generator: { strategy: AUTO }
  fields:
    number_of_holders:
      type: integer
      length: 15
      nullable: true

在树枝模板文件中,

{{stat.number_of_holders}}

根据此文档,

http://twig.sensiolabs.org/doc/templates.html#variables

它应该调用stat.getNumberOfHolders()getter但我收到错误

Twig_Error_Runtime:对象“Acme \ DemoBundle \ Entity \ SecurityStat”的方法“number_of_holders”不存在

1 个答案:

答案 0 :(得分:4)

它几乎是错误消息所说的,您的属性可以通过getter getNumberOfHolders访问,因此属性访问路径应为{{ stat.numberOfHolders }}

您在twig中进行的调用必须与您班级中的实际方法名称相匹配,没有 magic 方式让twig知道您的私有财产number_of_holders可通过您的方法访问{ {1}}。