当我在基于 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#