Size: a a a

Laravel Framework Russian Community

2020 July 09

ЕР

Евгений Рейхельд... in Laravel Framework Russian Community
токсик)
источник

as

alexandr sys in Laravel Framework Russian Community
источник
2020 July 10

VU

Vlad Umrikhin in Laravel Framework Russian Community
Добрый день

AttributeProduct::whereIn('product_id', $productsId)->with(['attribute'])->groupBy('attribute_id')->get(); вызывает следующую ошибку
ncompatible with sql_mode=only_full_group_by

Решение: config/database.php strict => false

if we make 'strict' => false then it may give security bug
О чем речь? Какую проблему безопасности это вызывает? Есть ли еще способ оживить groupby?
источник

SG

Sergey Gerasimov in Laravel Framework Russian Community
Vlad Umrikhin
Добрый день

AttributeProduct::whereIn('product_id', $productsId)->with(['attribute'])->groupBy('attribute_id')->get(); вызывает следующую ошибку
ncompatible with sql_mode=only_full_group_by

Решение: config/database.php strict => false

if we make 'strict' => false then it may give security bug
О чем речь? Какую проблему безопасности это вызывает? Есть ли еще способ оживить groupby?
Так надо выбирать только те поля, которые нужны, или группировать по тем полям, которые выбираешь. Система не знает как сгруппировать выбираемые поля - от того и ошибка
источник

VU

Vlad Umrikhin in Laravel Framework Russian Community
Sergey Gerasimov
Так надо выбирать только те поля, которые нужны, или группировать по тем полям, которые выбираешь. Система не знает как сгруппировать выбираемые поля - от того и ошибка
AttributeProduct::whereIn('product_id', $productsId)->with(['attribute'])->selectRaw('product_id, attribute_id')->groupBy('attribute_id')->get();

Так все равно ее ловлю(

select product_id, attribute_id from attribute_product where product_id in (1, 4, 5) group by attribute_id
источник

SG

Sergey Gerasimov in Laravel Framework Russian Community
Vlad Umrikhin
AttributeProduct::whereIn('product_id', $productsId)->with(['attribute'])->selectRaw('product_id, attribute_id')->groupBy('attribute_id')->get();

Так все равно ее ловлю(

select product_id, attribute_id from attribute_product where product_id in (1, 4, 5) group by attribute_id
Ну он не знает как ему product_id сгруппировать
источник

SG

Sergey Gerasimov in Laravel Framework Russian Community
Vlad Umrikhin
AttributeProduct::whereIn('product_id', $productsId)->with(['attribute'])->selectRaw('product_id, attribute_id')->groupBy('attribute_id')->get();

Так все равно ее ловлю(

select product_id, attribute_id from attribute_product where product_id in (1, 4, 5) group by attribute_id
groupBy(['attribute_id', 'product_id'])
источник

VU

Vlad Umrikhin in Laravel Framework Russian Community
Sergey Gerasimov
groupBy(['attribute_id', 'product_id'])
При передачи обоих, опять лезут дубли
источник

SG

Sergey Gerasimov in Laravel Framework Russian Community
Vlad Umrikhin
При передачи обоих, опять лезут дубли
Так возможно нужен DISTINCT?
источник

SG

Sergey Gerasimov in Laravel Framework Russian Community
Vlad Umrikhin
При передачи обоих, опять лезут дубли
Тут вообще не нужно группировать, просто выбрать с дистинктом
источник

SG

Sergey Gerasimov in Laravel Framework Russian Community
А лучше понять от чего дубли там содержатся
источник

ML

Mehrob Latipov in Laravel Framework Russian Community
Vlad Umrikhin
AttributeProduct::whereIn('product_id', $productsId)->with(['attribute'])->selectRaw('product_id, attribute_id')->groupBy('attribute_id')->get();

Так все равно ее ловлю(

select product_id, attribute_id from attribute_product where product_id in (1, 4, 5) group by attribute_id
'attribute_id', 'product_id'
         1                           1
         1                            2

вот группируешь ты по attribute_id что ты ожидаешь, какую запись должно вернуть?
источник

SG

Sergey Gerasimov in Laravel Framework Russian Community
Vlad Umrikhin
При передачи обоих, опять лезут дубли
Сделать уникальный индекс для 'attribute_id', 'product_id'
источник

VU

Vlad Umrikhin in Laravel Framework Russian Community
Sergey Gerasimov
А лучше понять от чего дубли там содержатся
@lmboom
таблица кростейбл

Я формирую фильтры для раздела, запрашиваю все атрибуты, которые есть у товаров

В итоге мне нужны только уникальные attribute_id, product_id лишь для отбора(условия) используются

Ща, переварю, последние сообщения)
источник

SG

Sergey Gerasimov in Laravel Framework Russian Community
Vlad Umrikhin
@lmboom
таблица кростейбл

Я формирую фильтры для раздела, запрашиваю все атрибуты, которые есть у товаров

В итоге мне нужны только уникальные attribute_id, product_id лишь для отбора(условия) используются

Ща, переварю, последние сообщения)
Почему в этой таблице у тебя дублируются данные по 'attribute_id', 'product_id'?
источник

VU

Vlad Umrikhin in Laravel Framework Russian Community
Sergey Gerasimov
Почему в этой таблице у тебя дублируются данные по 'attribute_id', 'product_id'?
не в том проблема, 1 атрибут у нескольких товаров
источник

SG

Sergey Gerasimov in Laravel Framework Russian Community
Vlad Umrikhin
не в том проблема, 1 атрибут у нескольких товаров
Нет, я про то, почему у одного и того же товара один и тот же атрибут несколько раз прописан?
источник

VU

Vlad Umrikhin in Laravel Framework Russian Community
Sergey Gerasimov
Нет, я про то, почему у одного и того же товара один и тот же атрибут несколько раз прописан?
нет, такого быть не может
источник

VU

Vlad Umrikhin in Laravel Framework Russian Community
$attributesProducts = AttributeProduct::whereIn('product_id', $productsId)->selectRaw('attribute_id')->with(['attribute'])->distinct('attribute_id')->get();
Кстати, вроде сработало
источник

VU

Vlad Umrikhin in Laravel Framework Russian Community
кажется, затуп был еще в лишнем поле selectRow у меня
источник