首页 > 解决方案 > 在 laravel 8 中找不到控制器的媒体模型

问题描述

我测试过使用 laravel,但我遇到了一些意外错误,我已经按照教程和一些视频进行了操作。我想,我做对了。但我得到这个错误。问题控制器未找到媒体模型。

找不到类“App\Media”

路线

Route::get('/', [MediaController::class, 'index']);

媒体控制器

namespace App\Http\Controllers;
use App\Media;

class MediaController extends Controller
{
  public function index(){
    return Media::all;
  }
}

媒体模型

namespace App\Models;
use Illuminate\Database\Eloquent\Model;

class Media extends Model
{
  protected $table = 'media';
  public $timestamps = false;
  protected $primaryKey = 'Media_ID';
}

标签: laravel

解决方案


use对模型的陈述Media不正确。从 Laravel 8 开始,模型的默认命名空间是App\Models之前它们在App命名空间中的位置。

namespace App\Http\Controllers;

use App\Models\Media;

class MediaController extends Controller
{
  public function index(){
    return Media::all;
  }
}

确保该Media.php文件存在于您的app/Models目录中并且大小写正确。

然后在您的web.php文件中,不要忘记MediaController在顶部包含您的使用声明。

use App\Http\Controllers\MediaController;

推荐阅读