Как вывести сообщения всех пользователей на одной странице - PullRequest
0 голосов
/ 08 мая 2020

Вот код, который я использовал на странице профиля пользователя, и он отлично работает

@foreach ($user->posts as $post)
    <div class="col-4 mb-4">
         <a href="{{ route('posts.show', ['post' => $post->id]) }}">
            <img src="{{ asset('storage') . '/' . $post->image }}" class="w-100 h-100">
         </a>
    </div>
@endforeach

Теперь я хотел бы отображать сообщения всех пользователей на домашней странице

Как сделать?

Ответы [ 3 ]

0 голосов
/ 08 мая 2020

Просто вызовите модель сообщения в вашем контроллере, например,

$posts = Post::select('columns_name')->get();

, уплотните переменную, и вы можете использовать как

@forelse($posts as $post)
      {{$post->id}}
@empty
   No post found
@endforelse
0 голосов
/ 08 мая 2020

Если у вас есть отношение в модели Post, например:

public function users()
    {

        return $this -> belongsToMany(User::class, 'user_posts');
    }

// где user_posts - это ваша таблица базы данных с внешними ключами

Использование в контроллере:

$posts=Post::with('users')->get();

Тогда в поле зрения:

@foreach ($posts as $post)
    <div class="col-4 mb-4">
         <a href="{{ route('posts.show', ['post' => $post->id]) }}">
            <img src="{{ asset('storage') . '/' . $post->image }}" class="w-100 h-100">
         </a>
         <a href="{{ route('users.show', ['user' => $post-> user -> id]) }}">
            {{ $post-> user -> name }}
         </a>
    </div>
@endforeach
0 голосов
/ 08 мая 2020

Если у вас есть модель Post в контроллере, вы можете что-то вроде этого.

public function index()
{
   $posts = Post::all();
   return view('home')->with('posts', posts);
}
<ul>
@foreach($posts as $post)
  <li>
     <img src="{{ asset('storage') . '/' . $post->image }}" class="w-100 h-100">
  </li>
@endforeach
</ul>

Надеюсь, это вам поможет.

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