Size: a a a

2020 May 26

AS

Artem Stepanenko in Laravel Pro
Daniil Zobov
Так делай цепочку where, в конце get()->pluck, в чем проблема-то?
проблема в создание 5000 моделей для 5000 id, а нужен в результате только массив с id
источник

DZ

Daniil Zobov in Laravel Pro
Не будет создано 5000 моделей
источник

DZ

Daniil Zobov in Laravel Pro
С чего вообще ты взял это? Покажи свой код, создающий 5000 моделей и тебе скажут, где ты не прав.
источник

AS

Artem Stepanenko in Laravel Pro
например вот
$object_ids = $q->pluck('id')->filter()->unique();
источник

АЯ

Андрей Яценко... in Laravel Pro
Select id мб решит отчасти
источник

AS

Artem Stepanenko in Laravel Pro
$q - модель с условиями выборки
источник

DZ

Daniil Zobov in Laravel Pro
И? Значит твои условия выборки отдают 5000 результатов
источник

DZ

Daniil Zobov in Laravel Pro
Зачем вызов filter()?
источник

DZ

Daniil Zobov in Laravel Pro
Покажи полный код, сейчас ничего не понятно.
источник

AS

Artem Stepanenko in Laravel Pro
Верно, и для каждого результата создается модель, это можно проверить сделав дебаг переменной или посмотрев в debugbar где в кол-ве загруженных моделей прибавляется как раз это кол-во записей
источник

ИФ

Иван Филатов... in Laravel Pro
Artem Stepanenko
Ребьят, привет
Как сделать MyModel::{условия}->pluck('id') без создания моделей для каждого результата, выбирается 5000 результатов и соответсвенно создается 5000 моделей, что не нужно, нужен массив id
Через сырой запрос не получится сделать, слишком много сложных и динамичных условий на выборке
https://stackoverflow.com/questions/35857297/how-to-return-an-array-instead-of-a-collection-in-laravel
первая ссылка в гугле, учитесь пользоваться поиском
источник

ДК

Дмитрий Кожанов... in Laravel Pro
Artem Stepanenko
Верно, и для каждого результата создается модель, это можно проверить сделав дебаг переменной или посмотрев в debugbar где в кол-ве загруженных моделей прибавляется как раз это кол-во записей
Дядь, ты вообще читал что  pluck делает?
источник

AS

Artem Stepanenko in Laravel Pro
так модели все равно создаются, но сразу же приводятся в массив, цель - не создавать модели дабы сэкономить время выполнения
источник

D

Dymon in Laravel Pro
Artem Stepanenko
Ребьят, привет
Как сделать MyModel::{условия}->pluck('id') без создания моделей для каждого результата, выбирается 5000 результатов и соответсвенно создается 5000 моделей, что не нужно, нужен массив id
Через сырой запрос не получится сделать, слишком много сложных и динамичных условий на выборке
Так и делай как написал, pluck вместо get. Только айдишки из базы выберутся
источник

ИФ

Иван Филатов... in Laravel Pro
если вы не делаете get() модели не создаются
источник

AS

Artem Stepanenko in Laravel Pro
$q->select('id')->get()
тоже создает модели
источник

AS

Artem Stepanenko in Laravel Pro
pluck тоже создает
источник

DZ

Daniil Zobov in Laravel Pro
Да и вообще, если у тебя выборка отдает 5000 записей, наверняка ты делаешь что-то не то.
Особенно, если ты после этого фильтруешь и отбираешь уникальность.
источник

D

Dymon in Laravel Pro
Artem Stepanenko
$q->select('id')->get()
тоже создает модели
Смотри запрос к базе, pluck не создает
источник

ИФ

Иван Филатов... in Laravel Pro
Artem Stepanenko
$q->select('id')->get()
тоже создает модели
->select()->where()->pluck()->toArray() не создает модели
источник