Вытащите primaryKey из отношений между одной и той же таблицей - PullRequest
0 голосов
/ 18 октября 2018

Курсос имеет отношения many-to-many с Курсосом, и я хочу получить только primaryKey от связанных Курсос.

$curso = Curso::with(['thumb','interna','area','cursos_relacionados' => function($query){
    $query->pluck('curso_id');
}])->find($curso_id);

Проблема: Column 'curso_id' in field list is ambiguous.

Я мог бы сделать это:

DB::table('cursos_has_cursos_relacionados')->select('curso_relacionado_id')
->where('curso_id','=',$curso_id)->pluck('curso_relacionado_id')->toArray();

Но я хотел бы знать, возможно ли и как добавить псевдоним к методу with() и использоватьпервый пример кода.

ОБНОВЛЕНИЕ

Это отношение

public function cursos_relacionados(){
    return $this->belongsToMany('App\Model\Curso','cursos_has_cursos_relacionados','curso_id','curso_relacionado_id');
}

Ответы [ 2 ]

0 голосов
/ 16 ноября 2018

К сожалению, я не смог найти ничего о настройке псевдонима для метода with ().Но, если кто-то окажется здесь, ищет тот же ответ.Попробуйте следующий код, он должен работать просто отлично

$curso = Curso::with(['thumb.media_root','interna.media_root','objetivos_media.media_root','area'])->find($curso_id);       
$curso->cursos_relacionados = DB::table('cursos_has_cursos_relacionados')->select('curso_relacionado_id')->where('curso_id','=',$curso_id)->pluck('curso_relacionado_id')->toArray();
0 голосов
/ 19 октября 2018

Проблема: Column 'curso_id' in field list is ambiguous.

Вам необходимо указать таблицу: 'thumb.curso_id' или нужную таблицу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...