找不到错误类“app\Models\BlogPost”

问题描述 投票:0回答:3

我正在使用 MySQL (XAMPP) 数据库,我已将其链接到 Laravel 文件夹的 .env 文件中。我正在尝试使用数据库在 posts.index 页面上显示“博客文章”,并且它在 Visual Studio 代码中没有显示任何错误,但是当我在浏览器中转到该页面时,它显示此错误:

找不到错误类“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
}
laravel controller xampp laravel-8 laravel-models
3个回答
0
投票

你的代码看起来不错。可能是 BlogPost 模型中的命名空间存在问题。

如果您在 PostsController 控制器中使用此代码作为类别模型:

使用 App\Models\BlogPost ; 那么你的 BlogPost 模型本身就有这个命名空间

命名空间 App\Models; 检查您的模型名称空间是否仍然存在。


0
投票

这是因为刀片中使用了

@dd($posts)
。直接删除
@dd($posts)


0
投票

我想你可以尝试: Use 语句:如果您尝试在控制器或其他类中使用 BlogPost 模型,请确保文件顶部有正确的 use 语句。

使用App\Models\BlogPost;

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.