Параметры первого вопроса, возвращающегося на каждый вопрос в этом запросе laravel - PullRequest
0 голосов
/ 08 декабря 2018

Параметры первого вопроса, возвращающегося по каждому вопросу в этом запросе laravel.

$questions = Question::with('option')
                ->join('categories', function($join) use ($category) {
                    $join->on('categories.id','=','questions.category_id');
                    $join->where('categories.title', '=', $category);
                })
                ->inRandomOrder(5)->get();

класс вопроса.

public function option()
{
    return $this->hasMany(Option::class);
}

класс параметра.

public function question()
    {
        return $this->belongsTo(Question::class);
    }

1 Ответ

0 голосов
/ 08 декабря 2018

Ваш запрос выбирает все столбцы: select * from questions join categories ...

В результате столбцы categories переопределяют столбцы questions с одинаковыми именами.

Необходимо ограничить выбранныестолбцы:

$questions = Question::with('option')
    ->join('categories', function($join) use ($category) {
        $join->on('categories.id','=','questions.category_id');
        $join->where('categories.title', '=', $category);
    })
    ->inRandomOrder(5)
    ->get(['questions.*']);

Или используйте whereHas():

$questions = Question::with('option')
    ->whereHas('categories', function($query) use($category) {
        $query->where('title', '=', $category);
    })
    ->inRandomOrder(5)
    ->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...