【问题标题】:Class "App\Models\BlogPostCategory" not found in Laravel 8在 Laravel 8 中找不到类“App\Models\BlogPostCategory”
【发布时间】:2021-10-15 18:38:34
【问题描述】:

创建新帖子后,我希望它将页面重定向到帖子列表。它正在成功创建它,并且数据正确插入到数据库中,但是当它重定向时,我得到了这个错误,并且同一个类正在同一个控制器中的作者函数中工作。

博客控制器

namespace App\Http\Controllers\Backend;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\Blog\BlogPostCategory;
use Carbon\Carbon;
use App\Models\BlogPost;
use Image;

class BlogController extends Controller
{
    public function BlogPostStore(Request $request)
    {
        $request->validate([
            'post_title_en' => 'required',
            'post_title_ar' => 'required',
            'post_image' => 'required',
        ], [
            'post_title_en.required' => 'Input Post Title English Name',
            'post_title_ar.required' => 'Input Post Title Arabic Name',
        ]);

        $image = $request->file('post_image');
        $name_gen = hexdec(uniqid()).'.'.$image->getClientOriginalExtension();
        Image::make($image)->resize(780, 433)->save('upload/post/'.$name_gen);
        $save_url = 'upload/post/'.$name_gen;

        BlogPost::insert([
            'category_id' => $request->category_id,
            'post_title_en' => $request->post_title_en,
            'post_title_ar' => $request->post_title_ar,
            'post_slug_en' => strtolower(str_replace(' ', '-', $request->post_title_en)),
            'post_slug_ar' => str_replace(' ', '-', $request->post_title_ar),
            'post_image' => $save_url,
            'post_details_en' => $request->post_details_en,
            'post_details_ar' => $request->post_details_ar,
            'created_at' => Carbon::now(),
        ]);

        $notification = array(
            'message' => 'Blog Post Inserted Successfully',
            'alert-type' => 'success'
        );

        return redirect()->route('list.post')->with($notification);
    }
}

BlogController 中的 Pposts 列表功能*

public function ListBlogPost()
{
    $blogpost = BlogPost::with('category')->latest()->get();
    
    return view('backend.blog.post.post_list', compact('blogpost'));
}

路线

Route::prefix('blog')->group(function(){
    Route::get('/list/post', [BlogController::class, 'ListBlogPost'])
        ->name('list.post');
    Route::post('/post/store', [BlogController::class, 'BlogPostStore'])
        ->name('post-store');
});

我在路径中创建 BlogPostCategory 类

App\Models\Blog\BlogPostCategory;

【问题讨论】:

  • 您能否通过包含App\Models\BlogPost 的内容来更新您的问题?干杯
  • 尝试清理缓存
  • 我认为问题在于App\Models\BlogPost 模型中的category 方法配置了指向@ 的关系(BelongsToHasOneHasMany 等...) 987654331@ 而不是 App\Models\Blog\BlogPostCategory

标签: php laravel laravel-blade laravel-8


【解决方案1】:

问题很可能是由于App\Models\BlogPost 模型中的关系定义造成的。

我认为你的App\Models\BlogPost 模型中有一个category 方法;

public function category()
{
    return $this->belongsTo(BlogPostCategory::class);
}

所以它在同一个命名空间中寻找BlogPostCategory,但是由于你的BlogPostCategory的完整路径是App\Models\Blog\BlogPostCategory,你需要指定这个。

App\Models\BlogPost 类的顶部添加 use App\Models\Blog\BlogPostCategory;

<?php

namespace App\Models;

use App\Models\Blog\BlogPostCategory;
//    other classes

class BlogPost extends Model
{
    // other stuff

    public function category()
    {
        return $this->belongsTo(BlogPostCategory::class);
    }
}

【讨论】:

    【解决方案2】:

    @ALAA ELDIN,会出现以下错误之一。 -

    1. 查看您在 BlogPost 中使用的导入路径。还要检查关联。
    2. 查看您在 BlogPostCategory 模型中使用的导入路径。

    只要纠正路径并清除缓存,错误就会解决。

    【讨论】:

      猜你喜欢
      • 2021-03-07
      • 1970-01-01
      • 2021-03-11
      • 2021-12-28
      • 2017-06-07
      • 2017-10-04
      • 1970-01-01
      • 2022-08-11
      • 1970-01-01
      相关资源
      最近更新 更多