Путь ветки Symfony4 с аннотацией ParamConverter - PullRequest
0 голосов
/ 07 мая 2018

У меня есть контроллер с отлично работающей аннотацией ParamConverter:

/**
* @Route("/pro/{uniqid}")
* @ParamConverter("company", options={"mapping":{"uniqid" = "uniqid"}})
* Class AdminController
* @package App\Controller
*/
class AdminController extends Controller
{}

А внутри у меня есть метод с другой аннотацией ParamConverter:

/**
 * @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в Twig когда я использую path вот так:

<a href="{{ path('edit-user', {'uniqid' : company.uniqid, 'user-uniqid' : permission.user.uniqid}) }}">Edit</a>

Вместо создания ссылки типа

http://symfony/pro/cie5aee957cc7a6d/admin/user-5aee93691d3a6/edit

Создается эта ссылка:

http://symfony/pro/cie5aee957cc7a6d/admin/%7Buser-uniqi%7D/edit?user-uniqid=user-5aee93691d3a6

Я не могу объяснить, почему {user-uniqid} заполнен неправильно и почему создан новый параметр запроса ...

1 Ответ

0 голосов
/ 07 мая 2018

У меня была похожая проблема, я решил ее, заменив дефис знаком подчеркивания в имени переменной.

Попробуйте:

/**
 * @Route("/admin/{user_uniqid}/edit", name="edit-user")
 * @ParamConverter("user", options={"mapping":{"user_uniqid" = "uniqid"}})
 * ...
 */
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...