Получить только один столбец и создать псевдоним для этого столбца, используя функцию «with ()» в laravel - PullRequest
0 голосов
/ 24 января 2019

У меня есть две таблицы, JobOrder и Job. Я использую отношения один ко многим.

Один 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 голосов
/ 24 января 2019

попробуйте это:

контроллер

public function getAllJobOrder()
{
    $results = JobOrder::with('job')->get();
    foreach($results as $result){
       $result->position = $result->job->position;
       unset($result->job);
    } 
    return $results;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...