Size: a a a

2020 December 02

S

Shotty in Laravel Pro
Привет. Срочный вопрос.

Получаю коллекцию из базы -
$model = Model::get();


И дальше, если я делаю -
$model->where(...)
- это записи берутся из коллекции, или запрос в базу данных ещё один идёт?

В данной ситуации, мы сделали один запрос - это получили все записи, и коллекция записалась в оп. память, и дальше уже через эту переменную я делаю where(...) - это оно уже тянет из коллекции, больше запросов в базу не будет?
источник

ЕП

Евгений Перин ⭐️... in Laravel Pro
в коллекции
источник

ЕП

Евгений Перин ⭐️... in Laravel Pro
а если до get() то в базе
источник

ЕП

Евгений Перин ⭐️... in Laravel Pro
но все равно один запрос
источник

ЕП

Евгений Перин ⭐️... in Laravel Pro
Model::where(...)->get()
источник

S

Shotty in Laravel Pro
А если я в коннтроллере передал это
$model = Model::get();

И
 дальше циклом
$model->where(...)
- в базу идёт один запрос на получения всех записей, но уже в цикле мы достаем из коллекции?
источник

S

Shotty in Laravel Pro
Например, в контроллере отдал вьюхе все записи - $model = Model::get();

И дальше в ней в цикле:

@foreach($model->where(...)->where(...) as $model)


В базу идёт один запрос? Цикл не делает запрос в базу?
источник

AB

Alex B in Laravel Pro
Alex B
Привет ребят
Есть вопрос по еластику, использую вот этоу либу + laravel/scout

Как я могу отключить точность поиска? Объясню на примере
я хочу чтобы поиск был не только по конкретному слову но и по начальной букве слова
Quas > так ищет
Q > а так ничего не находит
https://github.com/babenkoivan/scout-elasticsearch-driver
отбой, нашел решение
источник

S

Shotty in Laravel Pro
В цикле мы достаем уже из коллекции, которую мы уже получили и запросов в базу больше не будет?

На выходе мы получаем только  1 запрос в базу - это получить все записи из таблицы. Верно?
источник

ДБ

Даниил Беседный... in Laravel Pro
Shotty
Например, в контроллере отдал вьюхе все записи - $model = Model::get();

И дальше в ней в цикле:

@foreach($model->where(...)->where(...) as $model)


В базу идёт один запрос? Цикл не делает запрос в базу?
$all = $model->where(...)->where(...)  А дальше foreach ($all as)
источник

S

Shotty in Laravel Pro
Даниил Беседный
$all = $model->where(...)->where(...)  А дальше foreach ($all as)
мне в вьюхе нужно передавать параметры в where...
источник

P

Phoenix in Laravel Pro
Shotty
В цикле мы достаем уже из коллекции, которую мы уже получили и запросов в базу больше не будет?

На выходе мы получаем только  1 запрос в базу - это получить все записи из таблицы. Верно?
Объясни суть задачи которую пытаешься решить. Доставать из базы все записи и фильтровать в коллекции это треш.
источник

ДБ

Даниил Беседный... in Laravel Pro
Shotty
мне в вьюхе нужно передавать параметры в where...
$users = User::with('profile')->get();

...

@foreach ($users as $user)
   {{ $user->profile->name }}
@endforeach
источник

S

Shotty in Laravel Pro
Phoenix
Объясни суть задачи которую пытаешься решить. Доставать из базы все записи и фильтровать в коллекции это треш.
Но если достать все записи из базы и фильровать в коллекции это один запрос в бд?

Задача очень большая, чтобы её расписать, мне нужно узнать, если я получил из базы записи и дальше в коллекции делаю where(..) - в базу не идёт этот запрос который в where?
источник

P

Phoenix in Laravel Pro
Да это один запрос, если не будешь дергать связи в цикле доп запросов не будет.
источник

S

Shotty in Laravel Pro
О, спасибо большое, это мне и нужно было👍
источник

P

Phoenix in Laravel Pro
🤪
источник

S

Shotty in Laravel Pro
$model = Model::get();


А как мне в коллекции фильтровать данные по дате?

->whereDate('created_at', '=', Carbon::parse($day)->format('Y-m-d'))


Method Illuminate\Database\Eloquent\Collection::whereDate does not exist.
источник

A

Alex in Laravel Pro
->where("created_at"...)
источник

S

Shotty in Laravel Pro
Alex
->where("created_at"...)
мне нужно по дню, точного времени нет...
источник