我班级的控制器'文章'无法找到。
我需要从文章表中获取所有条目。
我可以使用DB :: facade来提取数据库中的内容,但是当我尝试使用Article :: all()时,我得到:
Class 'App\Http\Controllers\Article' not found
in ArticleController.php line 15
at Application->Laravel\Lumen\{closure}()
第15行看起来像:
$article = Article::all();
这是我迄今为止尝试过的,但没有成功:
将.env.example更新为.env并设置我的数据库凭据。
我已取消注释Dotenv::load(__DIR__.'/../');
在bootstrap / app.php中我已取消注释$app->withFacades(); $app->withEloquent();
我试图在routes.php中使用控制器的完整路径:$app->get('article', 'App\Http\Controllers\ArticleController@index');
我的模型目录位于app-> Models下,并且有我的Article.php模型:
<?php
# app/Models/Article.php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Article extends Model
{
protected $table = 'articles';
protected $fillable = ['title', 'content'];
}
我的控制器是ArticleController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class ArticleController extends Controller{
public function index(){
$article = Article::all();
return response()->json($article);
}
}
我的routes.php
<?php
$app->get('article', 'ArticleController@index');
我非常感谢有关此错误的任何帮助。不幸的是,我花了2天的时间来完成这项工作。
感谢。
答案 0 :(得分:0)
只需运行composer update
。将生成一个新的自动加载类图,并且您的所有新作曲家将在成功更新后准备好自动加载。
答案 1 :(得分:0)
您需要拥有适当的命名空间。您的Article
模型位于App\Models
命名空间中,因此您需要将其添加到控制器的顶部:
use App\Models\Article;
答案 2 :(得分:0)
感谢您的回复和@Thomas的回答。我按照你的回复,并能够在我的控制器中添加正确的命名空间。