首页 > 解决方案 > 删除 Resource::Collection 中的空数组不起作用 Laravel

问题描述

我想在返回时删除空数组。我一直在尝试许多不同的方式,请帮助我的控制器看起来:

public function index()
{
    return JobsResource::collection(Jobs::all())->filter();
}

我的资源文件看起来:

class JobsCollection extends Resource

{

public function toArray($request)
{
    $applicants_count =Job_applicants::where('job_id',$this->id)->get()->count();

    if ($applicants_count>0) {
        return [
            'id' => $this->id,
            'title' => $this->title,
            'deadline' => $this->deadline,
            'applicants_count' => $applicants_count,
            'applicants' => new EmployeesResource($this->Employeess->take(2))
        ];
    }
}

}

它总是返回一个空数组输出:

[
 [],

{ "id":99, "title":"Construction Administrator - The Woodlands", "deadline":"2018-06-30", "applicants_count":10, "applicants":[ { "name":"Mr.求职者”,“pivot”:{“job_id”:99,“employee_id”:1 } },{“name”:“Michale Feil”,“pivot”:{“job_id”:99,“employee_id”:2} } ] }

标签: phplaravel

解决方案


控制器:

public function index() {
    $jobs = Jobs::has('Employeess')->with('Employeess')->withCount('Employeess')->get();

    return JobsResource::collection($jobs);
}

资源文件:

class JobsCollection extends Resource
{

    public function toArray($request)
    {
            return [
                'id' => $this->id,
                'title' => $this->title,
                'deadline' => $this->deadline,
                'applicants_count' => $this->Employeess_count,
                'applicants' => new EmployeesResource($this->Employeess->take(2))
            ];
    }
}

推荐阅读