symfony 3获得基本网址

时间:2016-12-28 09:10:59

标签: php yaml symfony

我想在服务YAML中获得这样的顶级网址:

app.meal_list_service:
    class: Acme\MealLogBundle\Service\MealListService
    arguments: ['@app.entity_repository_meal',getBaseUrl()"]

我无法找到一个好的解决方案。我尝试从

获取网址

'%router.request_context.scheme%://%router.request_context.host%/'

但这只返回第一部分网址。

3 个答案:

答案 0 :(得分:0)

编辑:

我的错误。我以为你想要根项目目录。 尝试在parameters.yml中定义项目根路径,并以类似于传递%kernel.root_dir%的方式传递它。

// in parameters.yml
my_project_path: https://stackoverflow.com

// in your service.yml
app.meal_list_service:
    class: Acme\MealLogBundle\Service\MealListService
    arguments: 
        - '@app.entity_repository_meal'
        - '%my_project_path%'

答案 1 :(得分:0)

你可以这样做:

app.meal_list_service:
    class: Acme\MealLogBundle\Service\MealListService
    arguments: ['@app.entity_repository_meal', '%request_stack%']

在您的服务中:

$baseUrl = $requestStack->getCurrentRequest()->getSchemeAndHttpHost();

答案 2 :(得分:0)

您始终可以使用__ DIR __并从中创建路径。有时它比DI快,并将参数传递给服务。

看看这个,我在特质中使用它来创建图像上传路径。 https://gist.github.com/poznet/9d9b0a8b707a527fa56d9bb1fa1979ad