Je suis un débutant dans Laravel et je m'apprends à m'authentifier à partir d'une table de connexion. J'ai migré et créé la table. Maintenant, j'essaie de stocker les données dans la table de connexion, mais la commande Invite me donne continuellement une erreur, qui dit Fatal Error, class login not found
et je n'ai aucune idée de ce que j'ai manqué. Alors quelqu'un peut-il m'aider s'il vous plaît? Voici le code que j'ai, et oui j'utilise Laravel 4.3
<?php
class loginTableSeeder extends Seeder
{
public function run()
{
DB::table('login')->delete();
login::create(array(
'username' => 'sanju',
'password' => Hash::make('sanju')
));
}
}
?>
Vous devez créer un modèle Eloquent pour cette table pour pouvoir utiliser Login::create()
. Vous pouvez le faire avec une simple commande artisanale:
$ php artisan generate:model Login
Cela générera un nouveau modèle Eloquent dans le répertoire app/models
qui devrait ressembler à ceci.
class Login extends Eloquent {
protected $fillable = [];
protected $table = 'login';
}
Votre code devrait fonctionner après cela. Si cela ne fonctionne toujours pas, exécutez composer dump-autoload
.
MODIFIER
Maintenant, je vois, le problème vient de votre classe login
(avec la question précédente formater l'erreur exacte était illisible). Vous devriez regarder à nouveau quel est le nom du fichier dans lequel vous avez la classe login
et quel est le nom de la classe. La convention est que le fichier doit avoir le nom Login.php
(avec lettre majuscule) et le nom de la classe doit également être Login
(avec lettre majuscule). Vous devriez également vérifier dans quel espace de noms est votre classe Login
. S'il est défini dans l'espace de noms App
, vous devez ajouter à votre LoginTableSeeder
:
use App\Login;
dans la ligne suivante après <?php
en gros, le début de votre fichier devrait ressembler à ceci:
<?php
use App\Login;
use Illuminate\Database\Seeder;
REPONSE ANTERIEURE
Vous n'avez pas expliqué quelle est l'erreur exacte (probablement l'erreur concerne la classe Seeder
) mais:
Dans database/seeds/DatabaseSeeder.php
, vous devez exécuter le segment de connexion comme suit:
$this->call('LoginTableSeeder');
Vous devriez mettre dans database/seeds
le fichier LoginTableSeeder.php
avec une majuscule au début.
Maintenant, votre fichier fichier LoginTableSeeder.php
devrait ressembler à ceci:
<?php
use Illuminate\Database\Seeder;
class LoginTableSeeder extends Seeder
{
public function run()
{
// your code goes here
}
}
vous devez importer Seeder
avec use
au début du fichier et encore une fois, le nom de la classe doit commencer par une lettre majuscule.
Maintenant, vous devriez exécuter composer dump-autoload
et maintenant, lorsque vous exécuterez php artisan db:seed
, cela fonctionnera correctement.
Il suffit d'exécuter composer dump-autoload -o
Pour permettre à l'autochargeur de récupérer les nouvelles classes, car le dossier de la base de données n'est pas automatiquement chargé avec PSR-4.
Cela a fonctionné pour moi
composer dump-autoload -o
J'ai le même problème mais vous pouvez le résoudre en ajoutant votre espace de nom:
namespace yournamespace;
use App\Login;
use Illuminate\Database\Seeder;
J'ai eu le même problème. Dans mon cas, le compositeur était extrêmement vieux et après sa mise à jour, tout se passe bien.
Mettre à jour le compositeur avec la commande:
$ mise à jour automatique du compositeur
J'espère que cela peut aider les autres.