2015-04-02 69 views
0

我正嘗試在Symfony2中創建一個簡單的搜索表單。Symfony2中的表格

這是我的形式:

<form action="/search" method="GET"> 
    <div class="input-group"> 
     <input type="text" name="q" class="form-control" placeholder="Search ..."> 
     <span class="input-group-btn"> 
       <button class="btn-u btn-u-lg" type="button"><i class="fa fa-search"></i></button> 
     </span> 
    </div> 
</form> 

所以我的問題是,什麼是表單動作的語法?我只需輸入收到它的確切文件?或者我需要調用某種配置文件?

另一個問題是我如何處理控制器中的搜索?

提前致謝! 請注意,我在Symfony2中共有小白:)

編輯

如何處理該請求,如果我想一個不錯的網址是這樣的:」 ... /搜索/值「而不是」.../search?q = value「?

這裏是我的行動:

/** 
* @Route("/search/{value}", name="search") 
*/ 
public function searchAction($value) 
{ 

} 
+1

使用Symfony2的['formBuilder'](http://symfony.com/doc/current/book/forms.html)。 – D4V1D 2015-04-02 14:00:46

回答

0

在你的行動,你需要把你的控制器的邏輯路徑做這麼叫樹枝功能{{path('you route alias')}},我假設你已經設置你的路由配置。 來處理控制器搜索這將取決於你再自己的邏輯,但在一般情況下,你將不得不使用請求對象taht應該是有些人認爲這樣得到搜索詞:

public function searchAction(Request $request){ 
     $objet=$request->query->get("word"); 
     //do staff 
     return $this->render('Your Bundle:views:searchResult.html.twig') 
    } 
+0

嗨elkorchi anas!請參閱編輯:) – 2015-04-02 14:49:29

+0

現在我明白你想要什麼,在你的控制器中添加值作爲操作方法的參數yourAction($ value){/ * logic * /} – 2015-04-02 14:52:07

+0

我已經用動作更新了我的問題。請告訴我它是如何完成的:) – 2015-04-02 14:57:21

0

在表單動作,您需要輸入指向您的控制器的路線。例如,如果您的路由設置爲指向使用您的searchController搜索方法的「/ search」,則必須編寫action =「/ search」,因此當用戶提交此表單時,它將指向你的控制器的方法。

在您的控制器中,您可以使用輸入的名稱獲取$ _GET變量(通過您需要添加輸入字段的名稱以通過請求超全局變量來訪問),或者直接傳入值你的網址,並在你的「/搜索」後放置一個可選變量。

+0

嗨Thegree0ne :)請參閱編輯 – 2015-04-02 14:49:43

+0

傳遞一個參數給你的函數讓我們說searchAction($ searchTerm)... $ searchTerm將傳遞給/ search/{value}的值 – Thegree0ne 2015-04-02 15:00:28

+0

啊確定:)是我的表單提交正確嗎? – 2015-04-02 15:05:56