Three easy steps 1) configure function
Add an input for each field you want to include in your filter
复制代码 代码如下:
$this->widgetSchema["name"] = new sfWidgetFormFilterInput(array("with_empty" => false));
$this->validatorSchema["name"] = new sfValidatorPass(array("required" => false));
2) add a query modification when filtering for that field
I"ve done it for Doctrine. Pay atention to the method name addFIELDColumnQuery.
复制代码 代码如下:
public function addNameColumnQuery(Doctrine_Query $query, $field, $values)
{
if (is_array($values) && isset($values["text"]) && "" != $values["text"])
{
$query->leftJoin("r.Translation t")
// ->andWhere("t.lang = ?", $especify_one_language) // or it will search in all of them
->andWhere("CONCAT(t.name, t.shortname) like ?", "%" . $values["text"] . "%");
}
}
3) Add your searching fields
复制代码 代码如下:
public function getFields()
{
return parent::getFields() + array("name" => "Text");
}
From: http://oldforum.symfony-project.org/index.php/t/24350/