【问题标题】:Laravel 4.2 , Model (eloquent) my own class not foundLaravel 4.2,模型(雄辩)我自己的课程没有找到
【发布时间】:2015-03-30 16:21:59
【问题描述】:

我有这个奇怪的错误......我显然不能在我的项目中使用我的任何模型类...... Ad_category 模型

class Ad_category extends Eloquent {
    protected $table = 'ad_category';
    protected $fillable = array('*');
    use SoftDeletingTrait;
    protected $dates = ['deleted_at'];

}

调用它

$ad_cat=Ad_category::find(1);

错误

`Symfony \ Component \ Debug \ Exception \ FatalErrorException (E_ERROR)

Class 'Ad_category' not found `

【问题讨论】:

  • 我在您的问题中的任何地方都看不到Ad_target,除了错误消息...
  • 哎呀对不起@lukasgeiter ad_target 或类别我得到同样的错误
  • 这个类的命名空间是什么?您使用的是什么自动加载方案?你试过composer dumpautoload吗?
  • 没有使用命名空间......和它的默认自动加载方案......让我尝试转储自动加载

标签: laravel model eloquent


【解决方案1】:

当您想使用一个类时,PHP 框架使用一个称为“自动加载”的系统来自动将includerequire 放入正确的类定义文件中。 Laravel 4.2 中的自动加载有点像transitional spot,这意味着您的问题有多个答案。

默认情况下,Laravel 4.2 将在以下四个位置之一中查找名为 Ad_category 的类。

app/commands/Ad/category.php
app/controllers/Ad/category.php
app/models/Ad/category.php
app/database/seeds/Ad/category.php

也就是说,Laravel 的自动加载器会自动将Ad_category 转换为文件路径Ad/category.php,然后检查该文件的每个配置的自动加载路径。您可以在

中配置基本自动加载器路径
#File: app/start/global.php
ClassLoader::addDirectories(array(

    app_path().'/commands',
    app_path().'/controllers',
    app_path().'/models',
    app_path().'/database/seeds',
));

Laravel 4.2 也使用基于 composer 的自动加载。具体来说,它使用了一种非常激进的作曲家自动加载形式,称为classmap 自动加载。如果您查看 composer.json 文件,您会看到这样的部分

"autoload": {
    "classmap": [
        "app/commands",
        "app/controllers",
        "app/models",
        "app/database/migrations",
        "app/database/seeds",
        "app/tests/TestCase.php"
    ]

当你手动运行命令时

$ composer dumpautoload

Composer 将遍历上述部分中的每个文件夹并查找 PHP 类文件。如果找到一个,它会将其添加到vendor/composer/autoload_classes.php 中的类映射中。 Composer 也会在更新期间自动运行此命令。

所以,这意味着,如果你在 Laravel 期望找到的不同位置定义了 Ad_category,那么你可能能够侥幸逃脱

$ composer dumpautoload

Laravel 将使用 Composer 的自动加载器来查找你的类。

【讨论】:

    猜你喜欢
    • 2015-07-09
    • 1970-01-01
    • 1970-01-01
    • 2021-08-11
    • 1970-01-01
    • 1970-01-01
    • 2014-08-08
    • 2015-08-15
    • 1970-01-01
    相关资源
    最近更新 更多