未找到类“App\Http\Controllers\DB”,我也无法使用新模型

2022-08-30 09:48:19

我有非常基本的问题。在L4中,下面的方法开箱即用,所以现在我迷失了。请帮忙。几天前,我开始了一个Laravel 5.0项目。我现在有全新的全新安装。

问题1:当我尝试从数据库获取任何内容时

$headquote = DB::table('quotation_texts')->find(176);

我得到这个:

Class 'App\Http\Controllers\DB' not found

问题2:在我克隆User.php模型之前,将类名更改为“Quote”。以下是文件报价的内容.php放在App根文件夹中:

<?php namespace App;

 use Illuminate\Database\Eloquent\Model;

 class Quotation extends Model  {

    /**
     * The database table used by the model.
     *
     * @var string
     */
    protected $table = 'quotation_texts';
}

任何使用模型的尝试

$headquote = Quotation::find(176);

最终得到这个:

Class 'App\Http\Controllers\Quotation' not found

任何想法,我该如何解决这个问题?


答案 1

这里的问题是 PHP 命名空间。您需要学习如何使用它们。由于控制器位于命名空间中,因此如果引用任何其他类,则需要添加前导反斜杠(或正确的命名空间)或在文件开头添加语句(在类定义之前)。App\Http\Controllersuse

因此,在您的情况下,您可以使用:

$headquote = \DB::table('quotation_texts')->find(176);
$headquote = \App\Quotation::find(176);

或者添加控制器类语句,以便控制器类的开头可能如下所示:use

<?php

namespace App\Http\Controllers;

use DB;
use App\Quotation;

有关命名空间的更多信息,您可以查看如何使用其他命名空间中的对象以及如何在 PHP 中导入命名空间PHP 手册中的命名空间


答案 2

简单快速

use DB; 

\DB::table...

推荐