ReflectionException: Class ClassName n'existe pas-Laravel

aussitôt, je suis en tapant php artisan db:seed la commande.

je suis Erreur Comme:

[ReflectionException]

Classe UserTableSeeder n'existe pas

root@dd-desktop:/opt/lampp/htdocs/dd/laravel# php artisan db:seed

Ici, c'Est mon UserTableSeeder.php& DatabaseSeeder.php Page

UserTableSeeder.php

<?php
use IlluminateDatabaseSeeder;
use IlluminateDatabaseEloquentModel;

class UserTableSeeder extends Seeder
{    
    public function run()
    {
        DB::table('users')->delete();
        User::create(array(
        'name'     => 'Chris Sevilleja',
        'username' => 'sevilayha',
        'email'    => 'chris@scotch.io',
        'password' => Hash::make('awesome'),
        ));
    }    
}

DatabaseSeeder.php

<?php

use IlluminateDatabaseSeeder;
use IlluminateDatabaseEloquentModel;

class DatabaseSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        //Model::unguard();

        Eloquent::unguard();
        $this->call('UserTableSeeder');

        //$this->call(UserTableSeeder::class);

        //Model::reguard();
    }
}

je parle de Ce Lien Concevoir Et Développer La Page De Connexion. Merci de m'Aider à résoudre ce problème. Grâce.

25
demandé sur Nana Partykar 2015-09-09 12:30:00

14 réponses

effectuer un composer update, puis composer dump-autoload.

Si le ci-dessus ne résout pas le problème, modifiez le classmap dans votre composer.json fichier tel qu'il contient le chemin relatif au projet vers vos fichiers php:

"autoload-dev": {
    "classmap": [
        "tests/TestCase.php",
        "database/seeds/UserTableSeeder.php" //include the file with its path here
    ]
}, /** ... */

et peu après, effectuer un composer dump-autoload, et il devrait maintenant fonctionner comme un breeze!

Modifier par @JMSamudio

Si composer dump-autoload n'est pas trouvé, il suffit d'activer cette option composer config -g -- disable-tls true.

77
répondu Ahmad Baktash Hayeri 2017-08-17 04:27:31

composer dump-autoload devrait le réparer.

6
répondu fsavina 2016-05-14 10:34:26

à Partir de mon expérience, la plupart du temps lorsque la classe que vous essayez d'appeler a quelques bugs et ne peut pas être compilé. Veuillez vérifier si la classe qui n'est pas reflétée peut être exécuté à son propre.

5
répondu Kamaro Lambert 2016-04-22 10:40:19

j'ai eu ce problème et j'ai pu le résoudre en faisant php artisan config:cache. Le problème était que j'avais déjà exécuté cette commande auparavant et plus tard inclus quelques nouvelles classes de semoir. Les configurations de cache ne reconnaissaient pas les nouvelles classes. Donc exécuter cette commande à nouveau a fonctionné.

si vous vous voyez apporter des changements fréquents pour inclure de nouvelles classes de semis, alors envisagez php artisan config:clear. Cela vous permettra de faire autant de modifications que vous le souhaitez et puis après le test, vous pouvez l'exécuter config:cache encore une fois pour faire tourner les choses de façon optimale à nouveau.

4
répondu Sriram Ranganathan 2017-03-29 14:49:40

j'ai le même problème avec un class. J'ai essayer composer dump-autoload et php artisan config:clear mais pas résoudre mon problème.

puis j'ai décidé de lire mon code pour trouver n'importe quoi problème, ain je trouve le problème. Le problème dans mon cas, c'est que virgule Manque dans ma classe. Voir mon code de modèle:

{
    protected
    $fillable = ['agente_id', 'matter_id', 'amendment_id', 'tipo_id'];

    public
    $rules = [
        'agente_id' => 'required', // <= See the comma
        'tipo_id' => 'required'
    ];

    public
    $niceNames = [
        'agente_id' => 'Membro', // <= This comma is missing on my code
        'tipo_id' => 'Membro'
    ];
}
2
répondu Luciano Braga 2018-02-01 18:20:55

Pour une raison quelconque, j'ai dû courir composer dumpautoload -o. Avis drapeau -o ce qui veut dire avec optimisation. Je ne sais pas pourquoi ça ne marche qu'avec, mais essayez. Peut-être que cela aide quelqu'un.

2
répondu Jaroslav Klimčík 2018-02-26 11:32:15

essayez d'utiliser la commande suivante

php artisan db:seed --class=DatabaseSeeder
1
répondu easycodingclub 2016-08-30 18:01:08

Vous devez l'affecter à un espace de noms pour la trouver.

namespace App\Http\Controllers;
1
répondu G-Man 2016-09-07 20:57:19

Je n'écris pas comme réponse à cette question. Mais je veux aider les autres s'ils ont fait face au même bug mais les réponses mentionnées ici ne fonctionne pas. J'ai aussi essayé toutes les solutions mentionnées ici. Mais mon problème était avec le namespace j'ai utilisé. Le chemin était mauvais.

L'espace de noms que j'ai utilisé est:

namespace App\Http\Controllers;

mais en fait le contrôleur réside dans un dossier nommé 'Interface'

namespace à:

namespace App\Http\Controllers\Frontend;
1
répondu Abhi 2017-11-06 06:41:20

quand il cherche le fichier de classe seeder, vous pouvez lancer compositeur de vidage-autoload. Quand vous l'exécutez à nouveau et qu'il est à la recherche du modèle, vous pouvez le référencer sur le fichier seeder lui-même. Comme,

use App\{Model};
0
répondu Kent Aguilar 2015-11-15 04:03:15

ne sont Pas strictement liées à la question, mais n'a reçu l'erreur ReflectionException: Class config does not exist

j'avais ajouté un nouveau .env variable avec des espaces. Cours d'exécution php artisan config:clear m'a dit que tout .env la variable avec des espaces doit être entourée de " S.

Fait et ma demande a indiqué travailler à nouveau, pas besoin de config clair que toujours en développement sur Laravel Homestead (5.4)

0
répondu Scott Brown 2017-08-04 11:02:38

j'ai recréé la classe, et ça a marché. Copiez tout le contenu du fichier, supprimez le fichier, et lancez php artisan make:seeder ModelTableSeeder. Parce que composer dump-autoload n'a pas fonctionné pour moi.

0
répondu М.Б. 2017-11-10 09:27:09

Vous pouvez essayer d'écrire appuse majuscules, donc App. A travaillé pour moi.

0
répondu Epsilon47 2018-05-11 12:00:29
composer dump-autoload 

fix

0
répondu Richard kortby 2018-05-28 00:55:28