Symfony 2-细枝模板-实体函数结果

Symfony 2-细枝模板-实体函数结果,symfony,twig,Symfony,Twig,我正在寻找如何将symfony2中的一个实体函数返回的值发送到细枝模板的最佳解决方案 问题是根据“如何使用条令处理文件上载”手册()获取上载文件的文件url。我遵循了最后一个示例(“使用id作为文件名”) 在控制器中,我得到一个文档实体 $document = $this->getDoctrine()->getRepository('AppBundle:Documents')->find($id); 我向twig模板提供实体详细信息: return $this->ren

我正在寻找如何将
symfony2
中的一个实体函数返回的值发送到细枝模板的最佳解决方案

问题是根据“如何使用条令处理文件上载”手册()获取上载文件的文件url。我遵循了最后一个示例(“使用id作为文件名”)

在控制器中,我得到一个
文档
实体

$document = $this->getDoctrine()->getRepository('AppBundle:Documents')->find($id);
我向twig模板提供实体详细信息:

return $this->render('AppBundle:Documents:details.html.twig', array('document' => $document));
但是,在模板中,我需要获得指向由
getAbsolutePath()
函数生成的文件的链接

 public function getAbsolutePath()
    {
        return null === $this->link
            ? null
            : $this->getUploadRootDir().'/'.$this->id.'.'.$this->link;
    }
我可以在控制器中使用以下代码:

return $this->render('AppBundle:Documents:details.html.twig', array('document' => $document, 'link' => $document->getAbsolutePath()));

但这个解决方案似乎对我来说并不整洁,因为我已经在向twig发送
$document
。你的实际解决方案是什么?

很简单。在细枝模板中,您只需执行以下操作:

{{ document.getAbsolutePath() }}

您在哪里定义了
getAbsolutePath()
方法?您的
文档
实体?您还可以访问twig中
对象
(和数组)的所有方法/属性。只需在模板中执行
{{document.getAbsolutePath()}}
,解决方案将取决于@Artamiel问题的答案!同时,看看这个例子,如果它有帮助的话,因为如果逻辑与模板更相关的话,大多数人更喜欢创建自定义的细枝扩展。没有必要为此扩展细枝。。。正如您从op的代码中清楚地看到的那样,
getAbsolutePath
是一个公共getter,甚至
{{document.absolutePath}}