1

私は 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)
    );
}
4

1 に答える 1