我正在尝试使用Laravel并一直关注官方的Laravel Eloquent documentation以及可靠来源的多个教程tuts plus
我在app / models中创建了一个名为Stack的模型,在数据库中有一个名为stacks的表,其中一个名为id的主键列对应于Laravels默认值 .
<?php (Stack.php)
class Stack extends Eloquent
{
}
$stacks = Stack::all();
但是,当我运行此模型时,我收到以下错误消息 .
Fatal error: Class 'Eloquent' not found in C:\www\laravelproject\app\models\Stack.php on line 4
包括官方文档和声誉良好的教程,我还看了2个youtube教程,似乎没有额外的自动加载/包含/要求在任何新定义的模型中声明,所以我假设其他地方可能是错误的 .
我是否必须手动查找我必须自动加载的所有课程?如果是这样,为什么这不是在官方文档中写的?
我直接从laravel下载了最新的laravel.phar文件,并使用.bat文件来调用它 . (不是通过作曲家)
Some things I have checked/tried to fix the problem.
-
在供应商\ laravel \ framework \ src \ Illuminate \ Database \ Eloquent中确实存在Eloquent目录
-
在app / config / app.php中设置的Eloquent别名 . 默认'Eloquent' => 'Illuminate\Database\Eloquent\Model'
-
直接扩展类如\ Illuminate \ Database \ Eloquent \ Model,错误信息相同,但用\ Illuminate \ Database \ Eloquent \ Model而不仅仅是Eloquent
-
尝试通过导航整个Laravel目录结构\ vendor \ laravel \ framework \ src \ Illuminate \ Database \ Eloquent,然后\ laravel \ framework \ src \ Illuminate \ Database \ Eloquent等直接扩展所有变体...等 . ..
-
点击子弹并决定尝试第二种官方方法,我安装了作曲家并运行命令composer create-project laravel / laravel --prefer-dist,命令屏幕提醒我它正在下载文件,然后全部成功100% ,然后提醒我已成功设置生成的应用程序密钥 . 然后我导航到新的目录模型/ User.php并收到与我使用previuos方法(laravel.phar直接下载)时完全相同的错误消息 .
提前致谢 .
3 回答
确保从正确的“入口”访问该应用程序 .
因此,从 app/public/index.php 访问它 .
app / public / index.php文件加载自动加载器 .
你可能是命名空间 . 尝试在扩展类之前添加反斜杠 .
确保您在app config中设置
Eloquent
别名 . (应用程序/配置/ app.php)或者直接使用该类 . 我相信它是:
Illuminate\Database\Eloquent\Model