Здравствуйте!
Уже несколько часов ковыряюсь и не могу понять как это сделать. Но я уверен что ответ где то рядом.
Есть таблица записей post и есть таблица категорий category, а также, есть связывающая таблица category_post куда записываются id категорий и записей (id_category, id_post).
Задача состоит в том, что нужно вывести похожие записи. То есть, заходя в запись у которой имеется например 2 категории с id 5 и 4, нужно вывести любые другие записи тех же категорий.
Вот что у меня получилось, но там записи повторяются:
$resultCat = PostModel::where('id', $id)->with('category')->get();
$result = [];
foreach($resultCat[0]->category as $cat) {
$resultPost = CategoryModel::where('id', $cat->id)->with('post')->get();
foreach($resultPost[0]->post as $post) {
if ($post->id!=$id) {
$result[] = $post;
}
}
}
return $result;
Я уверен что можно на много проще и возможно даже без циклов это сделать. Буду благодарен за ответ!