Size: a a a

2019 December 08

L

Loot.jpg in Laravel Pro
artem55555p
Есть связь:
`
public function weights(){
       return $this->hasMany(Weight::class, 'product_id', 'id')->where('status', 1);
   }
`

Есть запрос:
`$product = $product->join('weight', 'weight.product_id', '=', 'product.id')
               ->orderBy('weight.price', 'ASC')
               ->with('weight')
               ->select('product.*');
`

Пишет ошибку:
SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'status' in where clause is ambiguous (SQL: select count(*) as aggregate from `product inner join weight on weight.product_id = product.id where exists (select * from catshop where product.id = catshop.product_id and (podcat = 369 or podpodcat = 369)) and status = 1)`

Помогите исправить
Тебе не нужен join
источник

a

artem55555p in Laravel Pro
Loot.jpg
Тебе не нужен join
$product = $product->whereHas('weights', function($q) use ($request) { return $q->orderBy('price', $request->sort);});

Вообще мне нужна сортировка, но так она не работает... Подскажите, как сделать?
источник

L

Loot.jpg in Laravel Pro
$product = $product->with('weights', function($q) use ($request) { return $q->orderBy('price', $request->sort);});
источник

П

Павел in Laravel Pro
artem55555p
$product = $product->whereHas('weights', function($q) use ($request) { return $q->orderBy('price', $request->sort);});

Вообще мне нужна сортировка, но так она не работает... Подскажите, как сделать?
Вконце get() добавить
источник

a

artem55555p in Laravel Pro
Павел
Вконце get() добавить
у меня дальше идет  $product = $product->paginate(12);
источник

a

artem55555p in Laravel Pro
Loot.jpg
$product = $product->with('weights', function($q) use ($request) { return $q->orderBy('price', $request->sort);});
источник

L

Loot.jpg in Laravel Pro
А не, там передай аргумент как массив
источник

a

artem55555p in Laravel Pro
Loot.jpg
А не, там передай аргумент как массив
не понял, пример можно?
источник

L

Loot.jpg in Laravel Pro
artem55555p
не понял, пример можно?
Ключ это отношение, значение это функция
источник

a

artem55555p in Laravel Pro
Loot.jpg
А не, там передай аргумент как массив
$product = $product->with('weights', [function($q) use ($request) { return $q->orderBy('price', $request->sort);}]);

так имеешь ввиду?
источник

L

Loot.jpg in Laravel Pro
$product = $product->with(['weights' =>function($q) use ($request) { return $q->orderBy('price', $request->sort);}]);
источник

a

artem55555p in Laravel Pro
Loot.jpg
$product = $product->with(['weights' =>function($q) use ($request) { return $q->orderBy('price', $request->sort);}]);
не, все равно не сортирует...
источник

a

artem55555p in Laravel Pro
источник

L

Loot.jpg in Laravel Pro
А ну да. Я чет забыл как это делалось
источник

a

artem55555p in Laravel Pro
Есть другие идеи?) В нете не нхожу...
источник

П

Павел in Laravel Pro
Return убери
источник

a

artem55555p in Laravel Pro
Павел
Return убери
$product = $product->with(['weights' => function($q) use ($request) { $q->orderBy('price', $request->sort);}]);  не помогло
источник

TC

Taras Chernata in Laravel Pro
Привет!
есть задание: Получить количество записей в модели созданных для каждого дня этого месяца. То есть если в месяце 31 дней тогда нужно  получить масив размером 31 елемент с количеством записей для каждого дня.

Вопрос: 31 запрос к БД делать не очень хороший вариант, можно ли это сделать одиним запросом?? и как?

Что я уже пробовал:
(код с комментами заданый на скрине)

Спачибо за помощь!
источник

TC

Taras Chernata in Laravel Pro
мне было интересно можно ли это сделать query() ??
источник

TC

Taras Chernata in Laravel Pro
ага
источник