Подтвердить что ты не робот

Путь symfony2 twig с созданием URL-адреса

я получил следующее:

<a href="{{ path('_be_activatecategory', {'id': category.id, 'active': 1}) }}">Aktivieren</a>

создает

/бэкенд/категории/активировать/8/1

а затем я получил

<a href="{{ path('_category', {'id': category.id}) }}">

который создает

/категория? ID = 1

видеть разницу? то, что я хочу, во втором случае точно так же, как и в первом:

/категория/1

как я могу управлять этим? почему хелпер пути() не создал правильный URL-адрес с параметрами для меня?

EDIT:

моя маршрутизация выглядит следующим образом:

/**
 * @Route("/category/{id}", name="_category")
 * @Template()
 */
public function categoryAction($id)
{
4b9b3361

Ответ 1

Задайте значение по умолчанию для аргумента active в маршруте.

Ответ 2

Убедитесь, что в вашем файле routing.yml указан 'id'. Другими словами, это должно выглядеть так:

_category:
    path: /category/{id}

Ответ 3

В Twig:

{% for l in locations %}

<tr>
    <td>
        <input type="checkbox" class="filled-in" id="filled-in-box-{{ l.idLocation }}" />
        <label for="filled-in-box-{{ l.idLocation }}"></label>
    </td>
    <td>{{ l.loc }}</td>
    <td>{{ l.mun }}</td>
    <td>{{ l.pro }}</td>
    <td>{{ l.cou }}</td>
    {#<td>
        {% if l.active == 1  %}
            <span class="fa fa-check"></span>
        {% else %}
            <span class="fa fa-close"></span>
        {% endif %}
    </td>#}
    <td><a href="{{ url('admin_edit_location',{'id': l.idLocation}) }}" class="db-list-edit"><span class="fa fa-pencil-square-o"></span></a>
    </td>
</tr>{% endfor %}

Маршрут admin_edit_location:

admin_edit_location:
  path: /edit_location/{id}
  defaults: { _controller: "AppBundle:Admin:editLocation" }
  methods: GET

И контроллер

public function editLocationAction($id){
    // use $id 

    $em = $this->getDoctrine()->getManager();
    $location = $em->getRepository('BackendBundle:locations')->findOneBy(array(
    'id'    => $id
    ));
}

Ответ 4

/**
 * @Route("/category/{id}", name="_category")
 * @Route("/category/{id}/{active}", name="_be_activatecategory")
 * @Template()
 */
public function categoryAction($id, $active = null)
{ .. }

Может работать.