2010-02-18 46 views
0

我想在symfony中用PHP實現一個非常簡單的搜索功能。如何從Symfony和PHP中的表單傳遞參數?

基本上我有一個表單發佈查詢,我想檢索與查詢匹配的數據庫中的項目。

如果我有一個包含列first_name和last_name的用戶表,我希望能夠檢索包含查詢的所有項目。例如,如果我提出 '一',我會得到有全名 'A' 在其中:

  • 蝙蝠男
  • 黑鬍子
  • 亞當西
  • 先生一

所以我知道我可以得到它的名字中包含「A」通過指定標準表中的所有對象:

$c = new Criteria(); 
$c->add(UserPeer::FIRST_NAME, '%a%', Criteria::LIKE); 
$users = UserPeer::doSelect($c); 

有沒有一種方法可以在add()函數中傳遞像$ query這樣的變量?我可以通過表單獲取$ query,然後將其作爲變量傳遞給add函數並獲取包含它的所有對象?我甚至會以正確的方式去做這件事嗎?

+0

哪個版本的輸入你用的是symfony嗎? 1.0版本到1.4版本的模板構建略有不同。 – Raise 2010-02-18 19:56:42

回答

3

在您的形式建立了一個id「查詢」

<label for="query">Query:</label> 
<?php echo input_tag('query') ?> 

在操作得到,如果表單已提交 參數然後將它傳遞到您的標準

if($this->getRequest()->getMethod() == sfRequest::POST) 
{ 
    $query = $this->getRequestParameter('query'); 

    $c = new Criteria(); 
    $c->add(UserPeer::FIRST_NAME, '%'.$query.'%', Criteria::LIKE); 
    $users = UserPeer::doSelect($c); 

} 
+1

此方法適用於symfony 1.0; symfony 1.1到1.3支持使用sf10CompatPlugin的這個方法,並且1.4完全支持sfForm子框架。 – Raise 2010-02-18 20:00:10

+0

感謝您的注意提高 – 2010-02-19 00:04:18