Size: a a a

Laravel для начинающих

2020 August 10

EG

Egor Gruzdev in Laravel для начинающих
DK
У нас есть поле json в таблице, если мы его кастим в array то все boolean становятся 0 или 1 в " ", можно ли кастить содержимое json-а?
а изначально что там? возможно там изначально "0" и "1"
источник

Gt

Galèriarch the Koban... in Laravel для начинающих
Vladimir Yefremov
это не я писал, хотел поднять проект локально...
счас выберу - что лучше:
- жейсон
- заменить дефолт
- ставить постгрю
Я бы в любом случае выбрал последнее.
источник

VY

Vladimir Yefremov in Laravel для начинающих
Galèriarch the Kobanian 🐗
Я бы в любом случае выбрал последнее.
поянтно
источник

RE

Roman Emelyanov in Laravel для начинающих
Sergey Gerasimov
Из модели также через whereHas, на тот момент еще нет модели - откуда он знает какие orders ему брать?
Я уже обращаюсь к конкретному пользователю и теперь в нём нужно получать только активные заказы
источник

D

DK in Laravel для начинающих
Egor Gruzdev
а изначально что там? возможно там изначально "0" и "1"
ну при сохранении он как 0 и 1 ложиться, хотя прилетает true\false
источник

SG

Sergey Gerasimov in Laravel для начинающих
Roman Emelyanov
Я уже обращаюсь к конкретному пользователю и теперь в нём нужно получать только активные заказы
Так попробуйте, дебажьте
источник

RE

Roman Emelyanov in Laravel для начинающих
Roman Emelyanov
Я уже обращаюсь к конкретному пользователю и теперь в нём нужно получать только активные заказы
Что бы не писать ещё раз запрос
источник

EG

Egor Gruzdev in Laravel для начинающих
DK
ну при сохранении он как 0 и 1 ложиться, хотя прилетает true\false
очень странно, т.к. casting осуществляется через json_encode/json_decode, а эти функции булевы значения корректно отрабатывают
источник

D

DK in Laravel для начинающих
Кххмм, пошуршу
источник

SG

Sergey Gerasimov in Laravel для начинающих
Roman Emelyanov
Всем привет, как получить данные из бд с помощью моделей, с условием по смежной таблицы? Связи между моделями настроены.
Например:
User::where('is_active',true)
->join('order')
->where('order.status','active')
->get();
$user - активный пользователь
$user->orders - все заказы
$user->orders() - билдер для заказов
$user->orders()->where('status', 'active')->get() - только активные заказы
источник

SG

Sergey Gerasimov in Laravel для начинающих
Roman Emelyanov
Всем привет, как получить данные из бд с помощью моделей, с условием по смежной таблицы? Связи между моделями настроены.
Например:
User::where('is_active',true)
->join('order')
->where('order.status','active')
->get();
А в вашем вопросе видна цель "получить всех пользователей, у которых есть активные заказы
источник

SG

Sergey Gerasimov in Laravel для начинающих
Из-за этого и ответ мой был - использовать whereHas
источник

SG

Sergey Gerasimov in Laravel для начинающих
Возможно у вас изменилась цель?
источник

RE

Roman Emelyanov in Laravel для начинающих
Sergey Gerasimov
Возможно у вас изменилась цель?
Не, я решил убрать в модель
источник

RE

Roman Emelyanov in Laravel для начинающих
Sergey Gerasimov
$user - активный пользователь
$user->orders - все заказы
$user->orders() - билдер для заказов
$user->orders()->where('status', 'active')->get() - только активные заказы
Вроде то что нужно, спасибо мужик!
источник

SG

Sergey Gerasimov in Laravel для начинающих
Roman Emelyanov
Не, я решил убрать в модель
User::query() - на данный момент модели еще нет, вы получаете билдер
источник

SG

Sergey Gerasimov in Laravel для начинающих
И если добавили, например, скоуп - то внутри скоупа $this будет являться билдером, и у билдера не будет свойства $orders
источник

RE

Roman Emelyanov in Laravel для начинающих
Sergey Gerasimov
User::query() - на данный момент модели еще нет, вы получаете билдер
Погоди, я нашёл пользователя, и теперь нужно вывести его активные заказы. $user->orders()->where('status', 'active')->get() это то что нужно!
источник

SG

Sergey Gerasimov in Laravel для начинающих
Roman Emelyanov
а из модели как это можно вызвать? Типа $this->orders->where('status','active');
Ну вы можете сделать связь activeOrders. например:
return $this->hasMany(Order::class, 'user_id')->where('status', self::STATUS_ACTIVE);
источник

EG

Egor Gruzdev in Laravel для начинающих
Sergey Gerasimov
И если добавили, например, скоуп - то внутри скоупа $this будет являться билдером, и у билдера не будет свойства $orders
так внутри scope нужно из параметров метода брать query?! разве нет!!!
источник