我有一个非常基本的问题。在 L4 中,以下方法是开箱即用的,所以现在我迷失了。请帮忙。几天前,我开始了一个 Laravel 5.0 项目。我现在已经有了全新、干净的安装。
问题 1:当我尝试从数据库获取任何内容时
$headquote = DB::table('quotation_texts')->find(176);
我明白了:
Class 'App\Http\Controllers\DB' not found
问题 2:在克隆 User.php 模型之前,将类名称更改为“Quotation”。以下是App根文件夹中Quotations.php文件的内容:
<?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
我有什么想法可以解决这个问题吗?
这里的问题是 PHP 命名空间。您需要学习如何使用它们。当你的控制器在App\Http\Controllers
命名空间,如果引用任何其他类,则需要添加前导反斜杠(或适当的命名空间)或添加use
文件开头的语句(类定义之前)。
所以在你的情况下你可以使用:
$headquote = \DB::table('quotation_texts')->find(176);
$headquote = \App\Quotation::find(176);
或添加到您的控制器类中use
语句,因此控制器类的开头可能如下所示:
<?php
namespace App\Http\Controllers;
use DB;
use App\Quotation;
有关命名空间的更多信息,您可以查看如何使用其他命名空间中的对象以及如何在 PHP 中导入命名空间 https://stackoverflow.com/questions/24607045/how-to-use-objects-from-other-namespaces-and-how-to-import-namespaces-in-php/24607087 or PHP手册中的命名空间 http://php.net/manual/en/language.namespaces.rationale.php
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)