当前位置: 首页 > 知识库问答 >
问题:

Laravel-找不到模型类

陶弘业
2023-03-14

当开始使用模型时,我得到了以下错误

未找到类帖子。

我所做的一切:
-使用命令php artisan make:Model
-尝试使用echo Post::All()从表posts获取所有条目

我使用了以下代码:

router.php

Route::get('/posts', function(){
    $results = Post::all();
    return $results;
});

邮递php

<?php 
namespace App;

use Illuminate\Database\Eloquent\Model;

class Post extends Model {
    protected $table = 'posts';    
}

我尝试的内容
-重命名类
-转储自动加载(未找到Laravel 4模型类)


共有3个答案

高增
2023-03-14

我在Laravel5.2中也有同样的错误,结果是模型类定义中的名称空间不正确。

我使用以下命令创建了模型:

php artisan make:model myModel

默认情况下,Laravel 5会在App文件夹下创建模型,但如果要像我一样将模型移动到另一个文件夹,则还必须更改模型定义中的名称空间:

namespace App\ModelFolder;

要在创建可以使用的模型时包含文件夹名称(请不要忘记使用双斜杠):

php artisan make:model ModelFolder\\myModel
池兴邦
2023-03-14

我收到了相同的“未找到类[类名]”错误消息,但这不是名称空间问题。我所有的名称空间都设置正确。我甚至尝试了composer dump autoload,但它对我没有帮助。

令人惊讶的是(对我来说),我随后使用了composer dump autoload-o,根据composer的帮助,“优化了PSR0和PSR4包,使其也能加载类映射,这对生产非常有益。”以某种方式这样做让composer能够正常工作,并在自动加载的类映射中正确地包含该类。php文件。

卫念
2023-03-14

Laravel 5促进了对模型和控制器等名称空间的使用。您的Model位于App命名空间下,因此您的代码需要这样调用它:

Route::get('/posts', function(){

        $results = \App\Post::all();
        return $results;
});

如注释中所述,您还可以使用或将命名空间导入到文件中,这样就不需要引用完整路径,如下所示:

use App\Post;

Route::get('/posts', function(){

        $results = Post::all();
        return $results;
});

当我对名称空间做一个简短的入门时,我也可以提到别名类的能力。这样做意味着您可以在一个文件的范围内重命名您的类,如下所示:

use App\Post as PostModel;

Route::get('/posts', function(){

        $results = PostModel::all();
        return $results;
});

有关导入和别名名称空间的详细信息,请参见此处:http://php.net/manual/en/language.namespaces.importing.php

 类似资料:
  • 错误:光电控制器中存在FatalErrorException。php第17行:找不到类“App\Http\Controllers\photo” 此代码出现异常-

  • 您好,我在类中使用模型时遇到问题。显示的错误是找不到错误类“App\Models\RegisteredUsers”。 我已经确保名称空间匹配正在使用的内容,但我反复得到同样的错误。 型号代码 控制器代码 目录App/Http/Controllers/RegisterUser-controller App/Http/模型/注册用户-模型 我用PHP artisan创建了模型和控制器。我已经尝试了从l

  • 我得到类模型没有找到错误 在我的模型课上 在我的控制器里 我甚至尝试了。我还是犯了同样的错误

  • 问题内容: 我在composer.json中添加了“ illuminate / html”:“ 5. *”并运行了“ composer update”。 我在网站的根目录中运行了此命令。我在/root/.composer …和项目的根目录中修改了composer.json文件,但两者都没有改变。 这下载了该类,并且似乎已安装。我已经将以下内容添加到文件 config / app.php中 。 我认

  • 摘要:找不到用于Lemmatizer(english-lemmatizer.bin)的模型文件 详细信息:OpenNLP工具模型似乎是Apache OpenNLP库的不同组件使用的各种模型的综合存储库。但是,我无法在lemmatizer中找到模型文件。垃圾箱,与柠檬汁机一起使用。Apache OpenNLP开发人员手册为柠檬化步骤提供了以下代码片段: 但是,与其他模型文件不同,我无法找到此模型文件

  • 问题内容: 我已经使用composer安装了Laravel,没有问题,但是当我尝试在终端中执行“ laravel ”时,我 遇到了 以下典型错误: -bash:laravel:找不到命令 如果我阅读了官方网站的文档,则需要这样做: 确保将〜/ .composer / vendor / bin目录放置在PATH中,以便在终端中运行 laravel 命令时找到laravel可执行文件。 但是我不知道该