Автозавершитель генерации URL-адреса Symfony sfFormExtraPlugin
-
22-09-2019 - |
Вопрос
У автозаполнителя есть обязательная опция - url.Проблема в том, что он используется в Form.class где ни url_for(), ни $this->getController()->genUrl() не работают.Все примеры, которые я видел, используют url в качестве литеральной строки, т. е.
$options = array('Model' => 'Model', 'url' => '/path');
Возможно, я что-то путаю, но я считаю, что писать URL-адреса в виде строки - не очень хорошая практика.В любом случае, если отбросить практику, я тоже не могу заставить это работать из-за использования frontend_dev.php Я имею в виду, что, я должен вручную изменять каждый URL-адрес Ajax после завершения разработки?Этого не может быть так.
Что я упускаю из виду?
Решение
Вы должны сгенерировать URL-адрес извне формы (в большинстве случаев это ваше действие) и передать его в качестве опции вашей форме:
$url = $this->generateUrl('my_route');
$this->form = new MyForm($object, array('url' => $url));
Затем вы получаете к нему доступ в своей форме, используя getOption
способ:
$this->getOption('url');
Другие советы
У меня тоже есть эта проблема с ajax.
Мой текущий метод заключается в обеспечении index.php работы в среде разработки - я изменяю интерфейсные контроллеры, чтобы определять среду на основе URL, а не передавать ее в виде строки.