Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 06.12.2018 22:54:30

Как средствами eloquent создавать запросы такого типа?

Здравствуйте!
Есть 2 таблицы:
users
id
id_depart

departments
id
type

Как в laravel 5.4 средствами eloquent создавать запросы такого типа (с несколькими таблицами в from без join)?

SELECT users.*
FROM users, deraptments
WHERE users.id_depart = departments.id
WHERE departments.type = 3

Изменено taraks (06.12.2018 22:56:34)

Не в сети

#2 07.12.2018 03:36:55

Re: Как средствами eloquent создавать запросы такого типа?

Привет, ребята постарались и описали это все в статье https://laravel.ru/docs/v5/eloquent-relationships
Или выноси код в DB::raw('SELECT ...')

Изменено McPack (07.12.2018 03:38:38)

Не в сети

#3 07.12.2018 11:00:22

Re: Как средствами eloquent создавать запросы такого типа?

Можете привести прямо нужные строчки из статьи, где это описано? Я вот не нашла, кроме join(), потому и спросила. DB:select() пока и использую, но это сырой запрос, и возвращает он не коллекцию, а массив, что очень начинает затруднять при дальнейшем использовании этих данных( В коллекции много полезных методов, а тут массив с какого-то..(

Не в сети

#4 07.12.2018 12:06:56

Re: Как средствами eloquent создавать запросы такого типа?

Для того, чтобы избежать сырых запросов в таких ситуациях, устанавливаю связь (hasOne - belongsTo) между этими таблицами и делаю transform коллекции users, забывая лишние элементы коллекции.

Не экономично, но без сырых запросов.

Не в сети

#5 07.12.2018 12:34:35

Re: Как средствами eloquent создавать запросы такого типа?

Мм, интересный вариант. Спасибо, попробую!
(всё-таки это странно, что для построения самых простецких запросов с перечислением связанных таблиц в from не добавили простого метода from, и поэтому нужно всячески изгаляться)

Не в сети

Подвал раздела