【问题标题】:Controller not found media model in laravel 8在 laravel 8 中找不到控制器的媒体模型
【发布时间】:2021-03-31 11:28:43
【问题描述】:

我测试过使用 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 8 Error Class 'App\User' not found 重复。这是一个命名空间错误。
  • @zahidhasanemon 我尝试按照底部的答案作为提到的重复项。在应用程序和我的模型之间添加模型。它返回未找到类“App\Models\Media”

标签: laravel


【解决方案1】:

您的 Media 模型的 use 语句不正确。从 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;

【讨论】:

  • 请避免回答重复的问题。
  • 现在它返回 Class "App\Models\Media" not found
  • 你的Media模型是在app/Models目录下还是在另一个目录下?
  • @Unflux 作为 Media.php 存在于该目录中。
  • @davidstephen 我在回答中添加了更多解释
【解决方案2】:

使用此代码:

你的控制器:

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
class MediaController extends Controller {
    public function index() {
        return Media::all;
    }
}

您的路线:

 Route::get('/', 'MediaController@index');

【讨论】:

    猜你喜欢
    • 2019-11-01
    • 2021-08-17
    • 1970-01-01
    • 2017-02-10
    • 2021-11-16
    • 2021-01-04
    • 2021-02-06
    • 1970-01-01
    • 2018-01-11
    相关资源
    最近更新 更多