Laravel+Doctrine環境で以下のエラーが発生
Error: Doctrine\Common\Proxy\AbstractProxyFactory::getProxyDefinition(): Failed opening required '***/__CG__***.php' (include_path='***')
うぅん…?
原因は、プロキシクラスが自動生成されない設定になっていたためでした。
config.php
'proxies' => [
'namespace' => false,
'path' => storage_path('proxies'),
'auto_generate' => env('DOCTRINE_PROXY_AUTOGENERATE', false)
],
公式ドキュメントの翻訳↓
開発環境でこれを行う場合、特定のプロキシがまだ生成されていないと、クラス/ファイルが見つからないというエラーが発生する可能性があることに注意してください。まだプロキシクラスに含まれていない新しいメソッドがエンティティクラスに追加された場合も、遅延ロードが失敗する可能性があります。
'DOCTRINE_PROXY_AUTOGENERATE'をtrueにすると自動生成されます。
(本番環境ではオーバーヘッドがかかってしまうため、trueにしちゃダメです)
artisanコマンドで手動生成することもできます。
php artisan doctrine:generate:proxies