Как я генерирую дружественный URL в Symfony PHP?

В Python 3.xx вам просто нужно input() not raw_input()

6
задан Ijas Ameenudeen 18 January 2019 в 11:05
поделиться

3 ответа

Если Ваша цель состоит в том, чтобы иметь удобные для пользователя URL всюду по Вашему приложению, используйте следующий подход:

1) Создайте правило маршрутизации для своего модуля/действия в routing.yml файле приложения. Следующим примером является правило маршрутизации для действия, которое показывает новые вопросы в приложении, принимая значение по умолчанию к странице 1 (использующий пейджер):

recent_questions:
   url:    questions/recent/:page
   param:  { module: questions, action: recent, page: 1 }

2) После того как правило маршрутизации установлено, используйте url_for() помощник в Вашем шаблоне к формату, исходящему URL.

<a href="<?php echo url_for('questions/recent?page=1') ?>">Recent Questions</a>

В этом примере будет создан следующий URL: http://myapp/questions/recent/1.html.

3) Входящие URL (запросы) будут проанализированы системой маршрутизации, и если соответствие шаблона найдено в конфигурации правила маршрутизации, именованные подстановочные знаки (т.е. :/page часть URL), станет параметрами запроса.

Можно также использовать link_to() помощник для вывода URL, не используя HTML <a> тег.

9
ответ дан 10 December 2019 в 00:46
поделиться

Этот совет для симфонии 1.0. Это, вероятно, будет работать на более поздние версии.

В Вашем sfAction классе:

представьте genUrl в виде строки ($parameters = массив (), $absolute = ложь)

например, $this-> getController ()-> genUrl ('yourmodule/youraction? key=value&key2=value', верный);

В шаблоне:

Это генерирует нормальную ссылку.

представьте link_to в виде строки ($name, $internal_uri, $options = массив ());

например, link_to ('Мое название ссылки', 'yourmodule/youraction? key=value&key2=value');

1
ответ дан 10 December 2019 в 00:46
поделиться

Кроме того, если Вы на самом деле хотите строку запроса с тем URL, Вы используете это:

link_to('My link name', 'yourmodule/youraction?key=value&key2=value',array('query_string'=>'page=2'));

Иначе это собирается попытаться направить его как часть URL и вероятно повредить Ваше действие.

0
ответ дан 10 December 2019 в 00:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: