【问题标题】:ErrorException: Trying to get property 'id' of non-object --Laravel unit testErrorException:试图获取非对象的属性“id”--Laravel 单元测试
【发布时间】:2021-05-20 02:48:47
【问题描述】:
最近我正在使用 Laravel 和 vue.js 开发一个项目“facebook-clone”。我第一次使用单元测试。
测试后发现这个错误,
错误:“ErrorException:尝试获取非对象的属性 'id'”
为了发送好友请求,我写了这个
test.a_user_can_send_a_friend_request
我在用户模型中使用多对多关系。
用户模型中的多对多关系
这是数据透视表朋友
API 路由:
api.php
使用的控制器:
朋友请求控制器
使用的资源:
朋友
【问题讨论】:
标签:
unit-testing
phpunit
laravel-6.2
laravel-unit-test
【解决方案1】:
问题解决了,我在FriendRequestController中犯了一个错误,我应该在Friendesource中传递一个参数,而不是我错误地传递了一个数组。
有错误:
return new FriendResource([
Friend::where('user_id', auth()->user()
->id)->where('friend_id', $data['friend_id'])
->first()
]);
修复错误后:
return new FriendResource(
Friend::where('user_id', auth()->user()
->id)->where('friend_id', $data['friend_id'])
->first()
);