Php Symfony2:如何获取资产&x27;视图模板内函数中的URL

Php Symfony2:如何获取资产&x27;视图模板内函数中的URL,php,symfony,twig,Php,Symfony,Twig,如文件所述,我可以使用以下代码在视图中读取图像文件 <img src="<?php echo $view['assets']->getUrl('images/logo.png') ?>" alt="Symfony!" /> //// This outputs the image 有人能给我指点一下,我怎样才能让它工作 这是我的完整视图文件 <?php echo $view['assets']->getUrl('images/logo.png') .

如文件所述,我可以使用以下代码在视图中读取图像文件

<img src="<?php echo $view['assets']->getUrl('images/logo.png') ?>" alt="Symfony!" />
////  This outputs the image
有人能给我指点一下,我怎样才能让它工作


这是我的完整视图文件

<?php
echo $view['assets']->getUrl('images/logo.png') . "<br><br>";

function one(){
    echo $view['assets']->getUrl('images/logo.png') . "<br><br>";
}
one();
?>
<img src="<?php echo $view['assets']->getUrl('images/logo.png') ?>" alt="no image" />
函数“one()”有自己的变量作用域,因此必须将url传递给函数

功能一($url)
{
echo$view['assets']->getUrl($url)。“

”; }
无论如何,我认为你应该简单地使用:

<img src="<?php echo $view['assets']->getUrl('images/logo.png') ?>" alt="Symfony!" />
getUrl('images/logo.png')?>“alt=“Symfony!" />

要渲染图像,如果您的视图变得复杂,那么现在可能是切换到功能强大的模板引擎(如twig)的正确时机。实际上,正如通知所述,它是变量
$view

您应该将
$view
作为参数传递,或者在函数范围内将其声明为全局:

function one($view) {
    echo $view['assets']->getUrl('images/logo.png');
}


您已经将模板引擎更改为php了吗?@Nextar是的,我已经更改了。我的php代码
可以工作。这大部分是我的答案。无论如何,使用全局变量是一种不好的做法,应该避免。谢谢。我不知道我怎么会错过基本变量范围问题?我在询问但回答+1后很快就意识到了这一点。@Nexta哦,是的,对此很抱歉。我应该发表评论。全局变量确实是一种糟糕的做法,应该被提及:)谢谢。我不知道我怎么会错过基本变量范围的问题?我在询问但回答+1后很快就意识到了这一点。
return $this->render('MySimpleBundle:Section:splash.html.php');
function one($url)
{
    echo $view['assets']->getUrl($url) . "<br><br>";
}
<img src="<?php echo $view['assets']->getUrl('images/logo.png') ?>" alt="Symfony!" />
function one($view) {
    echo $view['assets']->getUrl('images/logo.png');
}
function one() {
    global $view;
    echo $view['assets']->getUrl('images/logo.png');
}