url_for('category_set_representative_image', $category)
действительно работает, если у вас есть только один параметр. Если вы хотите добавить больше параметров, вы можете использовать url_for('category_set_representative_image', array('sf_subject' => $category, 'extra_param' => 'foo'))
.
Таким образом, sf_subject
- это объект, который используется для маршрутизации объекта. Все остальные параметры будут пытаться найти совпадения в самом URL-адресе, и, если они не найдены, они добавляются в виде строки запроса.
(Например, если у вас есть маршрут с URL /categories/:id/params/:extra_param
, он заполнит токен: extra_param, и ваш URL будет выглядеть как /categories/11/params/foo
, если он не определен в маршрутизации, URL будет выглядеть как /categories/:id?extra_param=foo
.
В обоих случаях вы можете получить значение параметра в действии с помощью $request->getParameter()
.