Symfony:在开发环境中生成产品url
我想知道在使用symfony路由组件生成URL时是否可以选择环境 在控制器中Symfony:在开发环境中生成产品url,symfony,routing,Symfony,Routing,我想知道在使用symfony路由组件生成URL时是否可以选择环境 在控制器中 $this->generateUrl($route, $params); 在产品环境中生成/,在开发环境中生成/app\u dev.php 似乎没有环境参数,因此您可以在开发环境中生成有效的URL。我只是不想一直用str_替换之类的东西 这太好了: $this->generateUrl($route, $params, 'prod'); 为了您的理解,我正在进行一个cms项目,在这个项目中,我必须将UR
$this->generateUrl($route, $params);
在产品环境中生成/
,在开发环境中生成/app\u dev.php
似乎没有环境参数,因此您可以在开发环境中生成有效的URL。我只是不想一直用str_替换之类的东西
这太好了:
$this->generateUrl($route, $params, 'prod');
为了您的理解,我正在进行一个cms项目,在这个项目中,我必须将URI与存储在没有app_dev.php的数据库进行匹配
有什么想法吗?路由器组件工作流不包括任何app.php或app\u dev.php文件。它只适用于查询字符串中php文件后面的模式,不管该文件是什么
所以你不能这么做。您只能使用.htaccess文件配置来管理将用作默认文件的文件。您可以在调用generateUrl之前将上下文的$baseUrl设置为“”(在生产环境中也是如此),然后在调用generateUrl后将其重置。每次构建完整的Url时,都会参考RequestContext->getBaseUrl 在我们的例子中,我们必须在没有app_dev或app.php的情况下构建URL,因为我们的前端是一个基于AngularJS的应用程序,与URL匹配。在本例中,由于我们根本不需要app_dev或app.php,因此我们创建了一个执行
$this->router->getContext()->setBaseUrl('');
我相信您可以自己覆盖
路由器
,但我不认为有本机功能可以实现您的目标。