15

他のいくつかのエンティティに関連するエンティティがあります。最後に、私は tat のようなオブジェクトを持っています:

paper.submission.authors

paper.submission の一部については、著者がいないため、小枝テンプレートで次のようにしています。

{% for author in paper.submission.authors}
    do something
{% endfor %}

そして、著者のいない paper.submission の場合、「エンティティが見つかりませんでした」という例外が発生します。

オブジェクトが for ループの前に存在するかどうかをテストする可能性はありますか。

is を試してみましたが、常に true です。次に、null ではないことを試してみましたが、これも例外を生成しています。

事前にどうもありがとうございました。

4

3 に答える 3

8

見つからなかった関連エンティティを見つけるためにデバッグする方法は?

例外メッセージはリポジトリhttps://github.com/doctrine/doctrine2/blob/master/lib/Doctrine/ORM/Proxy/ProxyFactory.php#L160で改善されまし たが、古いバージョンを使用している場合は、次のデバッグを行うことができます。

旧バージョンをご利用の場合

次のコードを ProxyFactory クラスthrow new EntityNotFoundException();の vendor/doctrine/orm/lib/Doctrine/ORM/Proxy/ProxyFactory.php:177 行の前に配置します。

$entity = $classMetadata->getReflectionClass()->getShortName();
$id = $classMetadata->getIdentifierValues($proxy)['id'];
var_dump("$entity WHERE id = $id NOT FOUND.");exit;
throw new EntityNotFoundException();
于 2016-01-29T14:37:44.483 に答える
6

あなたのエンティティでは、次のようなものを作ることができます:

public function getSubmission(){
    if($this->Submission->getId()==0) return null;
    return $this->Submission;
}
于 2015-07-17T08:07:00.757 に答える