私はコントローラ内にプライベートメソッドを持っていますが、メソッドを実行してブラウザの結果をエコーアウトしようとすると、それはただ死ぬだけです。私は下部にプロファイラーのない白い画面が表示され、error_logには何も表示されません。このDateTimeオブジェクトを自分のクエリで機能させるにはどうすればよいですか?
これは私の完全な方法です。 "hello"はエコーアウトしないので、クエリで死ぬように見えます。また、テーブルの 'created'フィールドはdatetime型です。
private function garbageCollect()
{
$em = $this->getDoctrine()->getManager();
$dql = 'SELECT r FROM AppBundle:MyEntity r WHERE r.created < :created';
$created = new \DateTime('-50 days');
$result = $em->createQuery($dql)
->setParameters(array('created' => $created->format('Y-m-d')))
->getResult();
echo "hello"; die; // it never echoes this out so it fails above
... // more code here excluded
return true;
}
私は間違っていますか?
UPDATE:私のログファイルは、WHERE句として次のものを表示します。WHERE r0_.created <? ["2016-07-22"] [] – pogeybait
UPDATE 2:パラメータを: - > setParameters(array( 'created' => new \ DateTime())に変更すると、6秒間の試行後もページが消滅しますクエリを実行します。まだ出力のない白いページを取得していますが、HTMLはありません。ログファイルはまだ空です。 Symfonyのdev.logは、phpmyadminで正常に実行されるクエリを表示します。作成されたフィールドを 'id' <:idのように変更し、idの整数をparamsに入れると、クエリは細かく実行され、ページ出力が実行されます。 WTH? – pogeybait