我需要在控制器中生成一些JSON内容,并且需要获取位于此处的上传图像的完整URL:/web/uploads/myimage.jpg
。
我怎样才能得到它的完整url?
http://www.mywebsite.com/uploads/myimage.jpg
发布于 2012-01-11 22:44:32
您可以从request对象生成url:
$baseurl = $request->getScheme() . '://' . $request->getHttpHost() . $request->getBasePath();
你可以做一个twig扩展,它切断了路径的/web
部分,并使用请求来生成基本url。
有关更可靠的实现,请参阅Symfony\Component\Routing\Generator\UrlGenerator::doGenerate
。
此外,Twig还可以访问来自app.request
的请求。
发布于 2013-05-11 23:38:39
您可以使用templating.helper.assets
服务。
首先定义您的assets base URL:
# app/config/config.yml
framework:
templating:
assets_base_url: "http://www.mywebsite.com/"
然后只需从控制器、命令或您所在的任何位置调用服务:
<?php
// src/Acme/Bundle/DemoBundle/Controller/DemoController.php
namespace Acme\Bundle\DemoBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
class DemoController extends Controller
{
public function indexAction()
{
$myAssetUrl = $this
->get('templating.helper.assets')
->getUrl('bundles/acmedemo/js/main.js', $packageName = null)
;
// $myAssetUrl is "http://www.mywebsite.com/bundles/acmedemo/js/main.js"
return array();
}
}
发布于 2012-06-14 23:16:38
如果您想从twig模板中获取此url,请使用:
{{ app.request.uriForPath('/uploads/myimage.jpg') }}
https://stackoverflow.com/questions/8811251
复制相似问题