Нарушение ограничения целостности: 1052 Столбец prof_id, в котором предложение неоднозначно Laravel

То, что я пытаюсь сделать, очень просто: выполнить запрос с некоторыми отношениями и дать этому отношению предложение where. Запрос предполагает получение вопросов со связанными отношениями, НО предложение where для тегов говорит только о получении вопросов с тегом, который был отправлено ($ value).

Модель userQuestion :

<?php

namespace App;

class userQuestion extends Model
{
protected $table = "question";
public $primaryKey = "question_id";
protected $fillable = ['question_id'];

public function gettags() {
return $this->belongsToMany('App\Profskills','question_profskill',"question_id","prof_id");
}
}

запрос

$allquestions = userQuestion::with('getanswer','getusername','getbounty','gettags')
->whereHas('gettags', function($q) use($value) {
$q->where('prof_id', '=', $value);
})
->orderBy('created_at','Desc')
->get();

проблема в том, что это дает мне эту ошибку

 QueryException in Connection.php line 729:
SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'prof_id' in
where clause is ambiguous (SQL: select * from `question` where exists
(select * from `prof_skills` inner join `question_profskill` on
`prof_skills`.`prof_id` =  `question_profskill`.`prof_id` where `question_profskill`.`question_id` =    `question`.`question_id` and
`prof_id` = 1) order by `created_at` desc)

столбец существует, и если я переключу столбец на qp_id(PrimaryKey) это будет работать и Колонны взяты из сводной таблицы, к которой я пытаюсь получить доступ

Сделал поиск в Google, что я сделал:

1-место в файле с профилем prof_id (так как у меня есть модель для сводной таблицы, я сделал то же самое)

2-try => где вместо whereHas

Все еще застряли,

Спасибо за любую помощь!

0

Решение

Добавьте имя таблицы с вашим полем, поскольку у вас есть prof_id в обеих таблицах.

$allquestions = userQuestion::with('getanswer','getusername','getbounty','gettags')
->whereHas('gettags', function($q) use($value) {

$q->where('question_profskill.prof_id', '=', $value); //question_profskill or prof_skills
})
->orderBy('created_at','Desc')->get();
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector