Reputation: 4083
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
In twig template file,
{{ stat.number_of_holders }}
As per this documentation,
http://twig.sensiolabs.org/doc/templates.html#variables
It should call stat.getNumberOfHolders() getter but I am getting error
Twig_Error_Runtime: Method "number_of_holders" for object "Acme\DemoBundle\Entity\SecurityStat" does not exist
Upvotes: 2
Views: 4526
Reputation: 8237
Its pretty much what the error message says, your property is accessible via your getter getNumberOfHolders
so the property access path should be {{ stat.numberOfHolders }}
The call you make in twig must match the actual method name in your class, there is no magic way for twig to know that your private property number_of_holders
is accessible via your method getNumberOfHolders
.
Upvotes: 4