5

教義の魔法の方法を使用してnull値を探す方法があるかどうか疑問に思っています。例えば:

Doctrine::getTable('myClass')->findByDeletedAt(null);

基本的に、削除されていないすべてのレコードを返したいと考えています。上記を試してみましたが、うまくいかないようです。

何か案は?

4

4 に答える 4

10

これを試すと、次のエラーが表示されます。

キャッチ可能な致命的なエラー: Doctrine\ORM\EntityRepository::findBy() に渡される引数 1 は、配列、指定された文字列でなければなりません

だからこれは私のために働く:

$repository->findBy(array('date_field' => null));
于 2013-01-31T09:30:53.913 に答える
2

実際、私は空想にふけろうとしていたと思います。次のように実行できます。

Doctrine::getTable('myClass')->findBy('deleted_at',null);
于 2010-10-06T00:01:34.947 に答える
1

これが古いことは知っていますが、提供されたソリューションは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 にすることができます。

それが誰かを助けることを願っています...

于 2013-02-01T14:15:40.530 に答える
0

これが古いことは知っていますが、最初の試みは間違っていました。フィールド「deleted_at」の場合、次のようにする必要があります。

Doctrine::getTable('YourClass')->findByDeleted_at($val);

フィールド「deleted_at」の最初の文字だけを大文字にしたことに注意してください。

于 2011-02-03T15:04:28.220 に答える