Laravel 5. Использование оператора USING
Я пытался найти его в течение долгого времени, и я не могу поверить, что у Laravel нет такой функциональности.
Итак, я могу написать:
select * from a join b where a.id = b.id
или красивее
select * from a join b using(id)
Первый случай прост для Laravel:
$query->leftJoin('b', 'a.id', '=', 'b.id')
Но как написать второй случай? Я ожидаю, что это должно быть просто и коротко, как:
$query->joinUsing('b', 'id')
Но такого метода нет, и я не могу его найти.
PS: возможно, что ответ очень прост, его просто найти по слову «использование», потому что он везде.
ОБНОВИТЬ
Я углубляюсь в источник, пытаясь создать область видимости или передать функцию для присоединения, но даже внутри этой функции я ничего не могу с этим $ запросом. Пример:
public function scopeJoinUsing($query, $table, $field) {
sql($query->join(\DB::raw("USING(`{$field}`)")));
// return
// inner join `b` on USING(`id`) ``
// yes, with "on" and with empty quotes
sql($query->addSelect(\DB::raw("USING(`{$field}`)")));
// return
// inner join `b` USING(`id`)
// but in fields place, before "FROM", which is very logic :)
}
Поэтому, даже если забыть о области действия, я не могу сделать это в DB :: raw (), поэтому это невозможно ... В первый раз я вижу, что что-то невозможное в Laravel.