Classe 'AppHttpControllersDB' introuvable et je ne peux pas non plus utiliser un nouveau modèle

j'ai un problème très basique. En 14 ci-dessous les méthodes ont travaillé hors de la boîte, donc maintenant je suis perdu. S'il vous plaît aider. Il y a quelques jours, J'ai lancé un projet Laravel 5.0. J'ai maintenant une installation fraîche et propre.

Problème 1: Quand j'essaie d'obtenir quelque chose de la base de données

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

, j'obtiens ceci:

Class 'AppHttpControllersDB' not found

problème 2: Avant de cloner L'utilisateur.modèle php, changement de nom de classe en "Quotation". Ci-dessous le contenu du fichier Citation.php mis dans le dossier racine App:

<?php namespace App;

 use IlluminateDatabaseEloquentModel;

 class Quotation extends Model  {

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

toute tentative d'utiliser le modèle

$headquote = Quotation::find(176);

se termine par ceci:

Class 'AppHttpControllersQuotation' not found

des idées pour résoudre le problème?

39
demandé sur Marcin Nabiałek 2014-11-17 09:15:51

6 réponses

le problème ici, ce sont les espaces de noms PHP. Vous avez besoin d'apprendre comment les utiliser. Comme votre controller est dans App\Http\Controllers namespace, si vous référez une autre classe, vous devez ajouter le leading backslash (ou l'Espace-nom approprié) ou ajouter use statement au début du fichier (avant la définition de la classe).

Donc dans votre cas, vous pouvez utiliser:

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

ou ajouter dans votre déclaration de classe de contrôleur use donc le début de votre contrôleur la classe pourrait ressembler à ceci:

<?php

namespace App\Http\Controllers;

use DB;
use App\Quotation;

pour plus d'informations sur les namespaces, vous pouvez consulter comment utiliser des objets à partir d'autres namespaces et comment importer des namespaces en PHP ou namespaces en PHP manuel

109
répondu Marcin Nabiałek 2017-05-23 12:18:23

rapide et sale

use DB; 

ou

\DB::table...
11
répondu Pedro Lobito 2016-05-16 23:43:11

il suffit d'ajouter ce haut de votre contrôleur.

use DB;
5
répondu Mamun Rasid 2016-12-15 14:48:53

il y a un problème dans l'espacement des noms comme dans 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';

}
0
répondu vishal 2017-03-03 12:41:36

essayez comme ceci:

<?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);
    }

    }
  }

?>
0
répondu radhason power 2017-06-20 19:11:09

utilisez le antislash avant db sur l'en-tête et vous pouvez l'utiliser alors typiquement comme vous l'avez écrit avant.

Voici l'exemple:

Use \DB;

alors dans votre classe de contrôleur vous pouvez utiliser comme vous l'avez fait avant, comme cela ie:

$item = DB::table('items')->get();
0
répondu Marvin Mustafa 2017-10-29 23:44:13