Ответ 1
Задайте значение по умолчанию для аргумента active
в маршруте.
я получил следующее:
<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)
{
Задайте значение по умолчанию для аргумента active
в маршруте.
Убедитесь, что в вашем файле routing.yml
указан 'id'
. Другими словами, это должно выглядеть так:
_category:
path: /category/{id}
В 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
));
}
/**
* @Route("/category/{id}", name="_category")
* @Route("/category/{id}/{active}", name="_be_activatecategory")
* @Template()
*/
public function categoryAction($id, $active = null)
{ .. }
Может работать.