How can I generate a link from a service? I’ve injected “router” inside my service, however generated links are /view/42 instead of /app_dev.php/view/42. How can I solve this?
My code is something like this:
services.yml
services:
myservice:
class: My\MyBundle\MyService
arguments: [ @router ]
MyService.php
<?php
namespace My\MyBundle;
class MyService {
public function __construct($router) {
// of course, the die is an example
die($router->generate('BackoffUserBundle.Profile.edit'));
}
}
So : you will need two things.
First of all, you will have to have a dependency on @router (to get generate()).
Secondly, you must set the scope of your service to “request” (I’ve missed that).
http://symfony.com/doc/current/cookbook/service_container/scopes.html
Your
services.ymlbecomes:Now you can use the @router service’s generator function !
Important note regarding Symfony 3.x: As the doc says,