首页 > 解决方案 > Laravel - Eloquent:API 资源 - 条件关系

问题描述

我想我可能在 Laravel 中发现了一个错误,请参阅以下代码:

我正在达到一个端点/api/users/1

public function show(User $user)
{
    return new UserResource($user);
}

我的资源如下所示:

use Illuminate\Http\Resources\Json\JsonResource;

class LenderTrancheCommitment extends JsonResource
{
    public function toArray($request)
    {

        //dd($this);

        return [
            'uuid'               => $this->uuid,
            'name'               => $this->name,
            'currency'           => $this->currency,
            'company'            => new CompanyResource($this->whenLoaded('company')),
            'created_at'         => $this->created_at,
            'updated_at'         => $this->updated_at,
        ];
    }
}

->with()现在我希望公司属性不会在 JSON 中返回,但是它确实如此,当我没有在代码中的任何地方使用时,任何人都可以看到为什么公司关系被加载并添加到 JSON 响应中的原因吗?

抱歉,如果这完全是 n00b 错误,但我想正确理解 Laravel 中的新 API 资源内容,我觉得我犯了一个错误。

标签: phplaravellaravel-5

解决方案


我设法解决了这个问题,问题是由于模型中有一个使用关系属性的属性。


推荐阅读