前提
Laravelで画像投稿サイトを作成していて、そこの「いいね一覧ページ」にページネーションを実装しようとしています。
実現したいこと
いいねを付けた投稿を見られる「いいね一覧ページ」にてページネーションの実装をする方法が分からず困っています。
発生している問題・エラーメッセージ
Method Illuminate\Database\Eloquent\Collection::latest does not exist.
該当のソースコード
LikeController.php(いいね一覧のコントローラーが書かれた部分) <?php namespace App\Http\Controllers; use Illuminate\Http\Request; class LikeController extends Controller { public function __construct() { $this->middleware('auth'); } // いいね一覧 public function index() { $like_posts = \Auth::user()->likePosts->latest()->paginate(5); return view('likes.index',[ 'title' => 'いいね一覧', 'like_posts' => $like_posts, ]); } // いいね追加処理 public function store(Request $request) { // } // いいね削除処理 public function destroy($id) { // } }
index.blade.php(いいね一覧ページのビュー) @extends('layouts.logged_in') @section('content') <h1>{{ $title }}</h1> <ul class="posts"> @forelse($like_posts as $post) <li class="post like_post"> <div class="post_content"> <div class="post_body"> <div class="post_body_heading"> 投稿者:{{ $post->user->name }} ({{ $post->created_at }}) </div> <div class="post_body_main"> <div class="post_body_main_img"> @if($post->image !== '') <img src="{{ asset('storage/' . $post->image) }}"> @else <img src="{{ asset('images/no_image.png') }}"> @endif <a href="{{ route('posts.edit_image', $post) }}">画像を変更</a> </div> <div class="post_body_main_comment"> {{ $post->comment }} </div> </div> <div class="post_body_footer"> [<a href="{{ route('posts.edit', $post) }}">編集</a>] <form class="delete" method="post" action="{{ route('posts.destroy', $post) }}"> @csrf @method('DELETE') <input type="submit" value="削除"> </form> </div> </div> <div class="post_comments"> <span class="post_comments_header">コメント</span> <ul class="post_comments_body"> @forelse($post->comments as $comment) <li>{{ $comment->user->name }}: {{ $comment->body }}</li> @empty <li>コメントはありません。</li> @endforelse </ul> <form method="post" action="{{ route('comments.store') }}"> @csrf <input type="hidden" name="post_id" value="{{ $post->id }}"> <label> <input type="text" name="body"> </label> <input type="submit" value="送信"> </form> </div> </div> </li> @empty <li>書き込みはありません。</li> @endforelse </ul> {{ $posts->links() }} <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script> /* global $ */ $('.like_button').each(function(){ $(this).on('click', function(){ $(this).next().submit(); }); }); </script> @endsection
試したこと
このエラーの要因がスペルミス等が多いと聞き、書いたコードのスペルミスなどのチェック
補足情報(FW/ツールのバージョンなど)
Laravel6_v1 Cloud9 Windows10
0 コメント