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"); }