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}}