Как связать две таблицы по нескольким полям сразу Laravel

343
06 апреля 2017, 21:27

Напишу в примерном виде, что хочу получить:

1)Есть запрос вида:

SELECT * FROM `check` WHERE `uid`='$id'

2)Запрос, который хочу получить, где $variant, $subject берутся из первого запроса.

SELECT * FROM `appeal` WHERE `variant`='$var' AND `uid`='$id' AND `subject`='$subject

Получается связать таблицы только по id:

Контроллер:

Variant::with('appealUid')->where('uid',$uid)->get();

Модель

public function appealUid(){
    return $this->hasOne('App\Appeal','uid','uid');
}

Не понимаю, как добавить связи и по другим полям

Answer 1

Тут только использовать Query Builder

\DB::table('check')->select([...])->join('appeal',function ($join) {
            $join->on('check.uid', '=', 'appeal.uid');
            $join->on('check.variant', '=', 'appeal.variant');
            $join->on('check.subject', '=', 'appeal.subject');    
        })->where('check.uid',$uid)->get()
READ ALSO
Защищают ли подготовленные выражения/переменные полностью от SQL инъекций?

Защищают ли подготовленные выражения/переменные полностью от SQL инъекций?

В мире уже давно используются mysqli и PDOМногие очень активно их пропагандируют: есть подготовленные переменные, всё становится безопасно и прочее

261
Перенос сайта на локальную машину

Перенос сайта на локальную машину

Есть сайт, к которому есть доступ по фтпДоступ к бд также есть

221
Перевод сайта на локальную машину

Перевод сайта на локальную машину

Перенес сайт на локальную машину, возникла следпроблема

215
Битая кодировка в pdf

Битая кодировка в pdf

Привет, подскажите пожалуйста как так получается, что в каком нибудь ридере pdf отображается нормально, но стоит скопировать кусок текста...

274