Php 类别';App\Http\Controllers\DB';找不到,我也不能使用新型号

Php 类别';App\Http\Controllers\DB';找不到,我也不能使用新型号,php,laravel,namespaces,models,laravel-5,Php,Laravel,Namespaces,Models,Laravel 5,我有一个非常基本的问题。在L4中,下面的方法是开箱即用的,所以现在我迷路了。请帮忙。几天前,我启动了一个Laravel5.0项目。我现在有新的,干净的安装 问题1:当我试图从数据库中获取任何信息时 $headquote = DB::table('quotation_texts')->find(176); 我明白了: Class 'App\Http\Controllers\DB' not found 问题2:在克隆User.php模型之前,将类名更改为“Quotence”。以下是应用程序

我有一个非常基本的问题。在L4中,下面的方法是开箱即用的,所以现在我迷路了。请帮忙。几天前,我启动了一个Laravel5.0项目。我现在有新的,干净的安装

问题1:当我试图从数据库中获取任何信息时

$headquote = DB::table('quotation_texts')->find(176);
我明白了:

Class 'App\Http\Controllers\DB' not found
问题2:在克隆User.php模型之前,将类名更改为“Quotence”。以下是应用程序根文件夹中的QUOTES.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';
}
结果是:

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;
$employee = Employee::where('name', 'John')->first();
又快又脏

use DB; 


只需将此添加到控制器的顶部

use DB;

名称间距存在问题,如laravel 5.2.3所述

use DB;
use App\ApiModel; OR  use App\name of model; 

DB::table('tbl_users')->insert($users); 

OR

DB::table('table name')->insert($users);



model 

class ApiModel extends Model
    {

        protected $table='tbl_users';

}

在标头上的db之前使用反斜杠,然后可以像以前编写的那样使用它

以下是一个例子:

Use \DB;
然后在控制器类中,您可以像以前一样使用,例如:

$item = DB::table('items')->get();
试着这样做:

<?php

    namespace App\Http\Controllers;

    use Illuminate\Http\Request;

    use DB;

    class UserController extends Controller
    {

    function  index(){

    $users = DB::table('users')->get();

    foreach ($users as $user)
    {
        var_dump($user->name);
    }

    }
  }

?>

我喜欢做这个我认为更干净的女巫:

1-将模型添加到命名空间:

use App\Employee;
2-然后您可以执行以下操作:

$employees = Employee::get();
或者像这样的事情:

<?php

namespace App\Http\Controllers;

use DB;
use App\Quotation;
$employee = Employee::where('name', 'John')->first();

非常感谢。天竺葵!!我不能投票,因为我的声誉不够高,很抱歉!该解决方案仅适用于DB。就我的模型而言,现在的情况是:如果我使用报价;在控制器中或在quoery$headquote=\QUOTE::find(176)中放置反斜杠;我发现:在我找到类“App\Http\Controllers\quote”之前,找不到类“quote”,这表明L%正在将“quote”识别为控制器的名称。@PiotrPlebaniak由于您的
quote
可能位于
App
命名空间中,我已经编辑了我的答案,现在它可以工作了,但仅作为使用App\quote;变体。它在查询命令中不起作用-语法错误,意外的“/”@PiotrPlebaniak,这里有
/
?应该是`
use-illumb\Support\Facades\DB