#php #laravel-7 #eloquent-relationship
Вопрос:
У меня есть таблица заказов, таблица операторов и таблица sim-карт. Я хочу показать количество запасов каждого оператора.
Таблица операторов: идентификатор, имя оператора
Таблица заказов: идентификатор, идентификатор оператора, статус (0: Ожидание, 1:одобрено)
Таблица Sim-карт: идентификатор, идентификатор заказа, идентификатор оператора, запас (0: в наличии, 1: продано)
Модель оператора:
public function order(){ return $this-gt;belongsTo(Order::class); } public function sim(){ return $this-gt;belongsTo(Sim::class); }
Модель заказа:
public function operator(){ return $this-gt;belongsTo(Operator::class); } public function sim(){ return $this-gt;hasMany(Sim::class); }
Sim-Модель:
public function operator(){ return $this-gt;belongsTo(Operator::class); } public function order(){ return $this-gt;belongsTo(Order::class); }
Мой файл с лезвием покажет что-то вроде этого:
Имя оператора | В наличии |
---|---|
Ветра | 2 |
Теленор | 3 |
Здесь нужно посчитать все одно и то же имя оператора, где запас = 0. но нужно сопоставить идентификатор заказа. Предположим, что в идентификаторе заказа № 5 имеется 10 операторов #Ветров, а запас == 0. Таким образом, он покажет, что у Winds есть 10 в наличии
Каков будет красноречивый запрос, чтобы показать это? Я думаю, что я делаю ошибки в своих моделях или соединении таблиц. Я не могу найти лучшую логику для этого запроса. Пожалуйста, помогите новичку.
Комментарии:
1. непонятно, какова ваша бизнес — логика?
2. Здесь нужно посчитать все одно и то же имя оператора, где запас = 0. но нужно сопоставить идентификатор заказа. Предположим, что в идентификаторе заказа № 5 имеется 10 операторов # Ветров и запас == 0. Таким образом, он покажет, что у Winds есть 10 в наличии
3. Вам нужно объяснить о таблицах, в чем их взаимосвязь, принадлежит ли порядок sim-карте или наоборот, в вашем коде все принадлежит, и только порядок имеет sim-карту, вам нужно в первую очередь подумать о своей бизнес-логике, если A принадлежит B. значит, у B есть A.
4. Пользователи могут сначала заказать оператора. Эта информация переходит в таблицу заказов. Затем администратор утвердит заказ и назначит sim-карту в соответствии с этим заказом. Таким образом, пользователь получит несколько симов под этим заказанным оператором. Затем пользователь может продать sim-карту от заказанного оператора. И пользователи могут видеть запасы sim-карт. Для этого я веду три таблицы. Если есть какие-либо исправления в моих текущих моделях, пожалуйста, предложите.
5. Я не могу предложить никаких исправлений, не имея более глубокого понимания того, что вы пытаетесь сделать.