0
我有一個表單和POST方法的問題。 我在控制器中創建一個表單是這樣的:Symfony2 POST方法控制器
$form = $this->createFormBuilder()
->setAction($this->generateUrl('ricerca_index'))
->setMethod('POST')
->add('search', 'text',array(
'label'=>'Cerca',
'required'=>false))
->add('submit', 'submit', array('label' => 'Cerca'))
->getForm();
$name = $request->getLocale();
return $this->render('DtEcBundle:Default:index.html.twig',array(
'form' => $form->createView()
而且我配置「ricerca_index」在我的路由文件中這樣說:
################################################################################
# ricerca #
################################################################################
ricerca_index:
host: "{_locale}.{domain}"
locales: { it: "/ricerca.{_format}", fr: "/ricerca.{_format}", de: "/ricerca.{_format}" }
defaults: { _locale: "%locale%", domain: "%domain%", _format: "html", _controller: DtEcBundle:Search:index }
requirements:
_locale: "it|fr|de"
domain: "%domain%"
_format: "html|json"
method: "POST"
ricerca_index_www.it:
path: /ricerca.{_format}
host: "www.{domain}"
defaults: { _locale: "%locale%", _format: "html", _controller: DtEcBundle:Search:index }
requirements:
_locale: "%locale%"
domain: "%domain%"
_format: "html|json"
method: "POST"
ricerca_index_nowww.it:
path: /ricerca.{_format}
host: "{domain}"
defaults: { _locale: "%locale%", _format: "html", _controller: DtEcBundle:Search:index }
requirements:
_locale: "%locale%"
domain: "%domain%"
_format: "html|json"
method: "POST"
在我的目的地我頁面的控制器以這種方式編寫打印我的變量ricerca_index:
use Symfony\Component\HttpFoundation\Request;
class SearchController extends Controller {
public function indexAction(Request $request) {
$search = $request->get('search');
return $this->render('DtEcBundle:Search:index.html.twig',array(
"search" => $search,
));
}
在樹枝文件我想打印我的變量形式「文本框「我寫這樣的代碼:
{% extends '::base.html.twig' %}
{% block body %}
<div class="container">
{{ search }}
</div>
{% endblock %}
我沒有收到錯誤,但我與轉儲變量爲空,哪裏出了問題?我是Symfony的新手..我該如何在頁面中打印我的變量?
看起來你有不同程度的POST請求的搜索值。嘗試調試請求並在其中查找搜索字段。 symfony表單有一個名稱。所以當請求進入控制器時,你必須從表單名稱的請求中檢索數據。要弄清楚表單的名稱(或排除這種情況),只需查看您的html。它看起來像什麼?搜索字段的名稱屬性的值是什麼? – Alex
@Alex我不忍受,「嘗試調試請求並在其中查找搜索字段」。 這是調試中的html代碼: ** ** –
這就是我的意思。您應該以不同的方式檢索您的表單。要獲取搜索值,請使用以下代碼:$ request-> get('form')['search'];或$ form = $ request-> get('form'); $ search = $ form ['search']; – Alex