@NiksevenEleven

Как сделать запрос multiple отдающий посты привязанные к городам Laravel?

Подскажите пожалуйста, у меня есть модели : City, Posts, Post_Cities.
Мне нужно сделать запрос через мультипл селект чтобы получить массив и дальше его обработать в контроллере и отдать посты привязанные к конкретному городу.

После запроса с формы получаю
+query: Symfony\Component\HttpFoundation\InputBag {#529 ▼
    #parameters: array:1 [▼
      "cities" => array:2 [▼
        0 => "9"
        1 => "10"
      ]
    ]
  }


Модель City
public function posts()
    {
        return  $this->belongsToMany(Post::class,'post_cities','city_id','post_id');

    }


Модель Post
public function cities()
    {
        return  $this->belongsToMany(City::class,'post_cities','post_id','city_id');

    }


Как это можно сделать?
  • Вопрос задан
  • 101 просмотр
Пригласить эксперта
Ответы на вопрос 2
delphinpro
@delphinpro Куратор тега Laravel
frontend developer
City:find([9, 10])->with('posts')->get()
City::with('posts')->find([9, 10])
Как-то так.
Ответ написан
@workaandrey
$citiesIds = $request->input('cities');
Posts::query()
    ->whereHas('cities', function($query) use($citiesIds) {
        return $query->whereIn('id', $citiesIds);
    })
    ->get();
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы