У меня есть таблица 'posts' и таблица 'post_images'.Я пытаюсь получить данные из обеих таблиц, а также присоединить к ним таблицу «пользователей».все работает, но запрос возвращает разные объекты для каждого изображения.
Мой код AJAX:
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
url: '/loadPosts',
type: 'GET',
dataType: 'json',
data: {_token: "{{ csrf_token() }}"},
success: function(r){
console.log(r);
r.forEach((post)=>{
$('.posts-div').append(`
<div class="card mb-3">
<h5 class="card-header">
<img src="https://www.stickpng.com/assets/images/585e4bf3cb11b227491c339a.png" style="width: 35px; height: 35px;">
${post.name} ${post.surname}
</h5>
<div class="card-body">
<p class="card-text">${post.text}</p>
<img src="images/${post.link}" style="width: 100%;">
</div>
</div>
`);
})
}
})
Маршрут:
Route::get('/loadPosts','UserController@loadPosts');
Функция:
public function loadPosts(){
$my_id = Auth::user()->id;
$posts = DB::table('posts')->where('user_id','!=',$my_id)->join('post_images','posts.id','=','post_images.post_id')->join('users','posts.user_id','=','users.id')
->select('image','link','name','surname','text')
->get()
->toArray();
print_r(json_encode($posts));
}
Вот что я получаю в успехе AJAX:
результат
В новом сообщении 3 изображения, поэтому это должен быть один объект, а не три.