Pet*_*ter 51 php namespaces models laravel laravel-5
我有非常基本的问题.在L4中,下面的方法开箱即用,所以现在我迷路了.请帮忙.几天前,我开始了一个Laravel 5.0项目.我现在有新鲜,干净的安装.
问题1:当我尝试从数据库中获取任何内容时
$headquote = DB::table('quotation_texts')->find(176);
Run Code Online (Sandbox Code Playgroud)
我明白了:
Class 'App\Http\Controllers\DB' not found
Run Code Online (Sandbox Code Playgroud)
问题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';
}
Run Code Online (Sandbox Code Playgroud)
任何尝试使用该模型
$headquote = Quotation::find(176);
Run Code Online (Sandbox Code Playgroud)
最终得到这个:
Class 'App\Http\Controllers\Quotation' not found
Run Code Online (Sandbox Code Playgroud)
我有什么想法可以解决这个问题?
Mar*_*łek 129
这里的问题是PHP命名空间.您需要学习如何使用它们.由于您的控制器位于App\Http\Controllers
命名空间中,如果您引用任何其他类,则需要use
在文件开头添加前导反斜杠(或正确的命名空间)或添加语句(在类定义之前).
所以在你的情况下你可以使用:
$headquote = \DB::table('quotation_texts')->find(176);
$headquote = \App\Quotation::find(176);
Run Code Online (Sandbox Code Playgroud)
或者添加你的控制器类use
语句,这样你的控制器类的开头可能如下所示:
<?php
namespace App\Http\Controllers;
use DB;
use App\Quotation;
Run Code Online (Sandbox Code Playgroud)
有关名称空间的更多信息,您可以查看如何使用其他名称空间中的对象以及如何在PHP手册中导入名称空间或PHP手册中的名称空间
Ped*_*ito 12
又脏又脏
use DB;
Run Code Online (Sandbox Code Playgroud)
要么
\DB::table...
Run Code Online (Sandbox Code Playgroud)