我正在尝试使用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文件来调用它。 (不是通过作曲家)
我已检查/尝试解决问题的一些事项。
提前致谢。
答案 0 :(得分:1)
确保从正确的“入口”访问该应用程序。
因此,从 app / public / index.php 。
访问它app / public / index.php文件加载自动加载器。
<?php
/**
* Laravel - A PHP Framework For Web Artisans
*
* @package Laravel
* @author Taylor Otwell <taylorotwell@gmail.com>
*/
/*
|--------------------------------------------------------------------------
| Register The Auto Loader
|--------------------------------------------------------------------------
|
| Composer provides a convenient, automatically generated class loader
| for our application. We just need to utilize it! We'll require it
| into the script here so that we do not have to worry about the
| loading of any our classes "manually". Feels great to relax.
|
*/
require __DIR__.'/../bootstrap/autoload.php';
答案 1 :(得分:0)
你的命名空间是可能的。尝试在扩展课程之前添加反斜杠。
class Stack extends \Eloquent
{
}
答案 2 :(得分:0)
确保您在应用配置中设置了Eloquent
别名。 (应用程序/配置/ app.php)
或者直接使用该类。我相信它:Illuminate\Database\Eloquent\Model
class Stack extends \Illuminate\Database\Eloquent\Model {}