我有3種型號:自動完成,搜索多個數據庫表/字段 - Symfony的
文章[姓名,職務]
照片[名稱,描述]
視頻[名稱,描述,轉錄]
現在,我想創建一個自動完成搜索,它將在輸入字段中搜索每個模型和db字段以匹配字符串。
是否可以對這3個表格進行搜索?
如果是這樣,我該怎麼辦呢?
我有3種型號:自動完成,搜索多個數據庫表/字段 - Symfony的
文章[姓名,職務]
照片[名稱,描述]
視頻[名稱,描述,轉錄]
現在,我想創建一個自動完成搜索,它將在輸入字段中搜索每個模型和db字段以匹配字符串。
是否可以對這3個表格進行搜索?
如果是這樣,我該怎麼辦呢?
我想你的使用推進。
它絕對有可能做到這一點,但如果這些表不與任何可能導致一些凌亂的代碼保存時相關。但是,如果你確實需要這些表中進行搜索,我的做法是創建像一個動作:
public function executeAutocomplete(sfWebRequest $request)
{
$q = $request->getParameter('q');//The value to be searched
$limit = $request->getParameter('limit');//Not completly necessary but recommendable
if(count($q) == 0)
{
return sfView::NONE;//With no input, no search
}
$results = array('article' => array(), 'photo' => array(), 'video' => array());
$article_search = ArticlePeer::search($q,$limit);
$photo_search = PhotoPeer::search($q,$limit);
$video_search = VideoPeer::search($q,$limit);
$this->process_search($results,$article_search,$photo_search,$video_search);
//Process those three arrays to fit your need
return $this->renderText(json_encode($result));
}
現在,在同行類的搜索功能看起來是這樣的:
ArticlePeer >>
public static function search($q,$limit = null)
{
$c = new Criteria();
$c->add(self::NAME,'%'.$q.'%',Criteria::LIKE);
if(!is_null($limit))
{
$c->addLimit($limit);
}
return self::doSelect($c);
}
終於至於小部件,我已經使用和改編sfWidgetJQueryAutocomplete,它的工作很不錯,所以你應該檢查出來。
編輯:嵌入式搜索字段si創建sfForm智能我之前提到的jQuery小部件的簡短方法,並將配置和js留給小部件。你必須找到一種方法來處理搜索結果。 嗯,我希望這對你有幫助!
UNION operator是你在找什麼。
哇,這太好了!我將在我的layout.php中使用搜索功能作爲輸入字段 - 我將如何使用sfWidgetJQueryAutocomplete這樣做? – terrid25 2010-12-23 16:56:54