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
}