0

Laravel ベースのプロジェクトで phpunit を実行すると、次のエラーが表示されます: ErrorException: Trying to get property of non-object

ただし、phpunit でのみ、ページは正常にレンダリングされます。

これは、エラーの原因であるブレード テンプレートのコード行です。

{{ $user->roles->first()->display_name }}

これを次の (醜い) コードに置き換えると、phpunit テストは正常に実行されます。

@php ($role = preg_replace('/[^a-z\d ]/i', '', $user->roles->pluck('display_name')) ) 
{{ $role }}

ロールはコントローラーに熱心にロードされます。

$users->load('roles');

なぜphpunitがこのエラーをスローするのか(そしてlaravelはスローしないのか)、これをより良い方法で解決する方法はありますか?

phpunit からのスタックトレース: https://paste.ee/p/dyMVs#

4

0 に答える 0