我是laravel的初学者。我在我的wamp服务器中使用Laravel 5.0.16。我一直在laracasts.com上免费视频教程学习laravel。我一直在尝试从数据库中获取数据。我已检查过我的应用已连接到数据库。
我在app文件夹中有以下结构:
-app
-Http(folder)
-Other folders (folder)
-Article.php (file)
-User.php (file)
在Http文件夹中:
-Controllers (folder)
-Middleware (folder)
-Requests (folder)
-Kernel.php (file)
-routes.php (file)
在Controllers文件夹中:
-ArticleController.php (file)
以下是旁路,控制器和模型文件中的代码:
/*routes*/
Route::get('articles','ArticleController@index');
/*Controller file*/
use App\models\Article;
namespace App\Http\Controllers;
use App\Http\Request;
use App\Http\Controllers\Controller;
class ArticleController extends Controller {
public function index()
{
$users = Article::all();
return $users;
}
}
/*Model file - Article.php*/
namespace App\models;
use Illuminate\Database\Eloquent\Model;
class Article extends Model {
protected $table = 'users';
protected $fillable = ['id','firstname', 'lastname', 'email','reg_date'];
}
用户是带有字段的数据库表。
我低于恐怖:
FatalErrorException in ArticleController.php line:
Class 'App\Http\Controllers\Article' not found
我检查了其他SO论坛,但他们没有帮助我,有人能建议我,我错过了什么?
答案 0 :(得分:3)
这里有两个问题。一个命名空间声明应该在任何use语句之前发生。
其次,您的模型使用model
命名空间,但您的模型不在模型目录中。命名空间应与目录结构匹配。因此,您需要将命名空间更改为use App\Article
(也更改模型文件中的命名空间)或将模型文件移动到模型目录中。
所以要在不移动文件的情况下修复此问题,请将代码更新为
namespace App\Http\Controllers;
use App\Article;
use App\Http\Request;
use App\Http\Controllers\Controller;
class ArticleController extends Controller {
public function index()
{
$users = Article::all();
return $users;
}
}
/*Model file - Article.php*/
namespace App;
use Illuminate\Database\Eloquent\Model;
class Article extends Model {
protected $table = 'users';
protected $fillable = ['id','firstname', 'lastname', 'email','reg_date'];
}
答案 1 :(得分:0)
将此行添加到控制器的顶部:
use App\models\Article;
或者在使用此模型时使用完整命名空间:
\App\models\Article::all();