Как показать количество в Laravel в зависимости от двух таблиц?

#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. Я не могу предложить никаких исправлений, не имея более глубокого понимания того, что вы пытаетесь сделать.