教義の魔法の方法を使用してnull値を探す方法があるかどうか疑問に思っています。例えば:
Doctrine::getTable('myClass')->findByDeletedAt(null);
基本的に、削除されていないすべてのレコードを返したいと考えています。上記を試してみましたが、うまくいかないようです。
何か案は?
教義の魔法の方法を使用してnull値を探す方法があるかどうか疑問に思っています。例えば:
Doctrine::getTable('myClass')->findByDeletedAt(null);
基本的に、削除されていないすべてのレコードを返したいと考えています。上記を試してみましたが、うまくいかないようです。
何か案は?
これを試すと、次のエラーが表示されます。
キャッチ可能な致命的なエラー: Doctrine\ORM\EntityRepository::findBy() に渡される引数 1 は、配列、指定された文字列でなければなりません
だからこれは私のために働く:
$repository->findBy(array('date_field' => null));
実際、私は空想にふけろうとしていたと思います。次のように実行できます。
Doctrine::getTable('myClass')->findBy('deleted_at',null);
これが古いことは知っていますが、提供されたソリューションはDoctrine 1.2.xには正しくありません
次のような関数を使用する場合:
Doctrine::getTable('YourClass')->findByDeleted_at(null); //he want to get NOT DELETED rows!
Doctrine は次のエラーをスローします: "You must specify the value to findBy " 。
->findBy('deleted_at', null)
も例外をスローします。
->findBy('deleted_at','NULL')
SQL に変換されているため、正しくありません: ... WHERE deleted_at = 'NULL'
;
このようなクエリの SQL 構文は次のようになります。
... WHERE deleted_at IS NULL;
したがって、解決策は->findBySql()
メソッドを使用することです:
Doctrine::getTable('YourClass')->findBySql('deleted_at IS NULL', array());
* 3 番目の引数は、Hydration_Mode にすることができます。
それが誰かを助けることを願っています...
これが古いことは知っていますが、最初の試みは間違っていました。フィールド「deleted_at」の場合、次のようにする必要があります。
Doctrine::getTable('YourClass')->findByDeleted_at($val);
フィールド「deleted_at」の最初の文字だけを大文字にしたことに注意してください。