0

Laravel フォルダーの .env ファイルにリンクした MySQL (XAMPP) データベースを使用しています。データベースを使用して posts.index ページに「ブログ投稿」を表示しようとしていますが、ビジュアル スタジオ コードではエラーは表示されませんが、ブラウザーでページに移動すると、次のエラーが表示されます。

エラークラス "app\Models\BlogPost" が見つかりませんhttp://laravel.test/posts

投稿コントローラー

class PostsController extends Controller
{
    public function index()
    {
        return view('posts.index', ['posts' => BlogPost::all()]);
    }

    public function show($id)
    {
        // abort_if(!isset($this->posts[$id]), 404);

        return view('posts.show', ['post' => BlogPost::findorFail($id)]);
    }
}

ブログ投稿モデル

class BlogPost extends Model
{
    use HasFactory;
}

更新:私が今抱えている問題は、アイテムの配列が表示されることです。(私は Laravel の初心者なので、コードに問題があるとは限りません)。

これは post.index コードです:

@extends('layouts.app')

@section('title', 'Blog Posts')

@section('content')
{{--  @each('posts.partials.post', $posts, 'post')  --}}
@dd($posts)
@forelse ($posts as $key => $post)
    @include('posts.partials.post', [])
     @empty
     No posts found!    
    @endforelse
@endsection

これは、ブラウザに表示されるものです(データベースにあるものではなく)

  #items: array:1 [▼
    0 => App\Models\BlogPost {#1233 ▼
      #connection: "mysql"
      #table: "blog_posts"
      #primaryKey: "id"
      #keyType: "int"
      +incrementing: true
      #with: []
      #withCount: []
      +preventsLazyLoading: false
      #perPage: 15
      +exists: true
      +wasRecentlyCreated: false
      #escapeWhenCastingToString: false
      #attributes: array:5 [▶]
      #original: array:5 [▶]
      #changes: []
      #casts: []
      #classCastCache: []
      #attributeCastCache: []
      #dates: []
      #dateFormat: null
      #appends: []
      #dispatchesEvents: []
      #observables: []
      #relations: []
      #touches: []
      +timestamps: true
      #hidden: []
      #visible: []
      #fillable: []
      #guarded: array:1 [▶]
    }
  ]
  #escapeWhenCastingToString: false
}
4

2 に答える 2