当我在基于Laravel的项目上运行phpunit时出现错误: ErrorException:尝试获取非对象的属性
但只有在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的Stacktrace:https://paste.ee/p/dyMVs#