laravel-5 - Laravel Resource whenLoaded 不适用于 hasOne & belongsTo 关系
问题描述
我有一个订单模块,其中客户的关系为,公共功能客户(){
return $this->hasOne(Customer::class, 'id', 'customer_id');
}
我获取订单详细信息的查询是 $orderResponse = Order::find(1);
我的订单资源包括 'customer' => new CustomerResource($this->whenLoaded('customer'))
因此,预期的结果是我应该在没有客户对象的情况下获取所有客户详细信息,因为我在获取订单数据时没有加载它。但它作为回应。在加载集合时,它工作正常,但不适用于 hasOne 关系。
解决方案
不要使用whenLoaded,而是尝试在 Order 资源中为 hasOne 关系使用when :
'customer' => $this->when($this->customer, new CustomerResource($this->customer))
如果您的客户关系不为空,它将与您的 CustomerResource 一起加载。
推荐阅读
- c# - 将附加参数传递给事件处理程序
- python - python - 如何将包含带有单引号的浮点值的列表转换为在python中没有单引号的那些值的列表?
- gatsby - 当我在 Contentful 上更改内容时需要重建 Gatsby 网站
- unit-testing - 如何使用 Mockito 取消模拟异常?
- javascript - 按道具值唯一性过滤对象数组
- get - 如何加快 $tags = get_meta_tags
- c++ - std::basic_fstream
在 Linux 上不起作用 - angular - 如何在具有单独数据库和后端的 jenkins 上运行 cypress?
- javascript - 在reactjs中的返回内映射
- unit-testing - Test_xxx func 在 golang 中访问共享数据是否安全?