私は Symfony 1.4 プロジェクトに取り組んでおり、列「name_full」が「name」列と同時に検索されるように、バックエンド フィルター「name」をカスタマイズする必要があります。
私は FormFilterClass でそのようにすることを考えました:
public function addNameColumnQuery(Doctrine_Query $query, $field, $value) {
$rootAlias = $query->getRootAlias();
return $query->where(''.$rootAlias.'.name LIKE ?', "%$value%")
->orWhere(''.$rootAlias.'.name_full LIKE ?', "%$value%");
}
しかし、間違った結果セットが得られるため、うまくいきません。そして、デバッグのために完全な dql をダンプできるファイルが見つかりません。
完全な dql をダンプできる場所を指摘するか、私のアプローチの何が問題なのか教えてください。
ありがとうございました!
編集:これは、Michal が提案し、私が微調整した正しい関数です:
public function addNameColumnQuery(Doctrine_Query $query, $field, $value)
{
$rootAlias = $query->getRootAlias();
return $query->addWhere(
''.$rootAlias.'.name LIKE ? OR '.$rootAlias.'.name_full LIKE ?',
array($value, $value)
);
}