Reputation: 2681
I have a Controller with a ParamConverter
annotation that is perfectly working :
/**
* @Route("/pro/{uniqid}")
* @ParamConverter("company", options={"mapping":{"uniqid" = "uniqid"}})
* Class AdminController
* @package App\Controller
*/
class AdminController extends Controller
{}
And inside I have a method with another ParamConverter
annotation :
/**
* @Route("/admin/{user-uniqid}/edit", name="edit-user")
* @ParamConverter("user", options={"mapping":{"user-uniqid" = "uniqid"}})
* @param Company $company
* @param User $user
* @return \Symfony\Component\HttpFoundation\Response
*/
public function editUser(Company $company, User $user){}
Bu in Twig
when I use path
like that :
<a href="{{ path('edit-user', {'uniqid' : company.uniqid, 'user-uniqid' : permission.user.uniqid}) }}">Edit</a>
Instead of creating a link like
http://symfony/pro/cie5aee957cc7a6d/admin/user-5aee93691d3a6/edit
It creates this link :
http://symfony/pro/cie5aee957cc7a6d/admin/%7Buser-uniqi%7D/edit?user-uniqid=user-5aee93691d3a6
I can't explain why {user-uniqid}
is not properly filled and why a new query parameter is created...
Upvotes: 1
Views: 299
Reputation: 2596
I had a similar problem, i solved it by replacing the hyphen by an underscore in the variable name.
Try this:
/**
* @Route("/admin/{user_uniqid}/edit", name="edit-user")
* @ParamConverter("user", options={"mapping":{"user_uniqid" = "uniqid"}})
* ...
*/
Upvotes: 1