Laravel хранение данных после их разделения - PullRequest
0 голосов
/ 11 апреля 2020

Здравствуйте, у меня есть 3 таблицы

  • Компании
  • Купоны
  • Категории

Таблица компании содержит

  • идентификатор, имя, lo go

категория содержит

  • идентификатор, название, lo go

купоны содержит

  • идентификатор, название, условия, company_id, category_id

последние два предназначены для связи между компанией, модальной категорией и модальными купонами

После что сказал Биенг, вот случай

я отправил запрос на свой сервер с помощью API, который содержит Company_id .

, что я хочу сделать, это получить все купоны, которые содержат этот Company_id, затем из этих купонов я хочу взять все категории

что я пробовал

public function fetch_Categories($Company_id)
{
    //getting all coupons that containes the current company id
    $Coupons = Coupons::where('company_id' , $Company_id)->get();
   //Coupons variable returns two coupons which is expected 
    foreach($Coupons  as $Coupon){
        $Categroies = Categories::find($Coupon->category_id);
    }
}

хорошо, вы, наверное, заметили проблему,

я получаю два купоны и в будущем я получу больше, и мне нужно получить категорию от каждого из них, используя столбец category_id, а затем вернуть его используя json как набор категорий. но вопрос в том, как мне это сделать * _ ^

, если неясно, я получаю два купона, и я должен сделать foreach для хранения каждой категории в моей переменной, но когда вы ставите знак "=", тогда Вы назначите значение для переменной и, наконец, получите одну категорию, которая является последней в foreach, мне нужен способ сохранить все категории, используя foreach, а затем вернуть их пользователю, используя json

1 Ответ

1 голос
/ 11 апреля 2020

Есть много способов достичь этого. Вот один из них:

$categoryIds = Coupons::where('company_id', $Company_id)->pluck('category_id')->unique();
$categories = Categories::whereIn('id', $categoryIds)->get();

Это также более эффективно, чем foreach l oop, поскольку для выборки всех категорий используется только один запрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...