仅获取一列,并使用laravel

时间:2019-01-24 06:18:03

标签: laravel laravel-5 eloquent

我有两个表JobOrderJob。我正在使用一对多关系。

一个Job可以有多个JobOrder,一个JobOrder只能属于一个Job

JobOrder模型:

public function job()
{
    return $this->belongsTo(Job::class);
}

控制器:

public function getAllJobOrder()
{
    $results = JobOrder::with('job')->get();
    return $results;
}

上面的代码返回如下数据:

enter image description here

我只想获取job->position并创建一个别名,如下所示: enter image description here

我实际上可以使用withCount来获得上图中的收益,但是我认为这不是正确的方法。

public function getAllJobOrder()
{
    $results = JobOrder::withCount(['job AS position' => function ($q) {
            $q->select('position');
        }])->get();
    return $results;
}

除了使用withCount之外,还有其他方法吗?

1 个答案:

答案 0 :(得分:2)

尝试一下:

控制器

public function getAllJobOrder()
{
    $results = JobOrder::with('job')->get();
    foreach($results as $result){
       $result->position = $result->job->position;
       unset($result->job);
    } 
    return $results;
}