Некоторое время назад я решил, что меня раздражает неспособность передавать объекты в качестве параметров маршрута. Я должен был заниматься знанием маршрутов и точных значений параметров в шаблонах и других вещей, генерирующих эти маршруты.
Я собрал этот пакет для Symfony, который позволяет вам использовать и расширять эту способность (Symfony 2.7 и выше). Пожалуйста, посмотрите: https://github.com/iltar/http-bundle. Он также доступен на Packagist как iltar / http-bundle.
Лучшее в этом пакете то, что вам не нужно использовать другой объект или генератор маршрутизатора. Он просто включает пакет, настраивая конфигурацию в соответствии с вашими потребностями, если настройки по умолчанию не работают в соответствии с вашими предпочтениями, и вы готовы к работе. В файле readme должно быть объяснено все, что вам нужно знать, но вот фрагмент:
Старый стиль:
/**
* @Route("/profile/{user}/", name="app.view-profile")
*/
public function viewProfileAction(AppUser $user);
// php
$router->generate('app.view-profile', ['user' => $user->getId()]);
// twig
{{ path('app.view-profile', { 'user': user.id }) }}
{{ path('app.view-profile', { 'user': user.getid }) }}
{{ path('app.view-profile', { 'user': user.getId() }) }}
{{ path('app.view-profile', { 'user': user[id] }) }}
Новый стиль:
// php
$router->generate('app.view-profile', ['user' => $user]);
// twig
{{ path('app.view-profile', { 'user' : user }) }}