Laravel 5: base de données des Semences de classe ne trouve pas
J'ai ce DatabaseSeeder.php:
<?php
use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;
class DatabaseSeeder extends Seeder {
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
Model::unguard();
$this->call('MemberInvitationSeeder');
}
}
J'ai ce fichier MemberInvitationSeeder.php, frère de l'DatabaseSeeder.php fichier
<?php
use Illuminate\Database\Seeder;
use App\MemberInvitation;
class MemberInvitationSeeder extends Seeder {
public function run()
{
MemberInvitation::truncate();
MemberInvitation::create( [
'id' => 'BlahBlah' ,//com_create_guid(),
'partner_id' => 1,
'fisrt_name' => 'Thats',
'last_name' => 'Me',
'email' => '[email protected]',
'mobile_phone' => '444-342-4234',
'created_at' => new DateTime
] );
}
}
Maintenant, je
php artisan db:seed
et j'obtiens:
[ReflectionException]
Class MemberInvitationSeeder does not exist
J'ai essayé tout ce que j'ai pu trouver, y compris "compositeur de vidage-autoload". en vain. Ce que je fais mal?
Ne
Ou
Il prétend simplement \MemberInvitationSeeder n'est pas trouvé...
utiliser App\MemberInvitationSeeder n'a aucun effet. Pas encore trouvé.
Avez-vous rappelez-vous d'exécuter compositeur benne de chargement automatique?
$this->call('\MemberInvitationSeeder');
faire une différence?Ou
use App\MemberInvitationSeeder
dans DatabaseSeeder.php
Il prétend simplement \MemberInvitationSeeder n'est pas trouvé...
utiliser App\MemberInvitationSeeder n'a aucun effet. Pas encore trouvé.
Avez-vous rappelez-vous d'exécuter compositeur benne de chargement automatique?
OriginalL'auteur JasonGenX | 2015-05-11
Vous devez vous connecter pour publier un commentaire.
La première étape - générer des semences:
Étape deux - En DatabaseSeeder.php ajoutez la ligne:
Étape trois:
Étape quatre:
Cela devrait fonctionner
Si ce n'est pas l'indice, vérifiez le fichier de compositeur.json et assurez-vous que vous avez ce code dans "autoload" section:
Ce doit être la accepté de répondre, la version actuelle est basée sur une fausse conclusion ou de manque de connaissances.
Cool mais un peu OT: Vous pouvez utiliser votre modèle de semences de base de données. Au lieu de
DB::table('my_foos')->insert(['col1' => 'Value 1'])
utilisationMyFoos::create(['col1' => 'Value1'])
. L'avantage est, l'auto-entretenucreated_at
etupdated_at
sont remplis pour vous. Alors qu'avecDB::table('x')->insert()
ils sont vides.OriginalL'auteur Krzysztof Raciniewski
J'ai résolu ce problème en ajoutant la classe pour le semoir fichier avec l'instruction
use
:OriginalL'auteur entoniperez
Je crois que je sais la raison maintenant.
La nouvelle classe MemberInvitationSeeder n'était pas dans l'auto chargement des classes dans le compositeur.fichier json.
Il n'était pas là parce que j'ai ajouté cette classe manuellement.
Maintenant, aller de l'avant, si j'ajoute ces classes de nouveau, que dois-je utiliser pour ma classe automatiquement à l'autochargeur?
autoload
section, vous devriez voir la configuration de laclassmap
et il devrait avoir"database"
dans le tableau qui raconte compositeur pour ajouter tous les éléments dans ce dossier à l'autochargeur. Si elle n'est pas là, c'est votre problème. Si il est là, essayez decomposer self-update
et puiscomposer dump
et voir si cela aide.OriginalL'auteur JasonGenX
Si les solutions ci-dessus ne fonctionne pas, essayez celui-ci.
Vous avez changé l'espace de noms (par défaut, c'est "App").
Ce que vous devez faire est d'aller à la
composer.json
fichier et vérifiez ceci:Si l'espace de noms est d'Application comme dans cet exemple, cette solution n'est pas pour vous.
Sinon, prendre l'espace de noms que vous avez trouvé et insérer cette ligne dans votre semoir classe:
OriginalL'auteur iahmedbacha