Laravel 5

Population (Seeds) d'une table avec Relation N:N

  • Avatar de Pakito
    Membre depuis :
    07/02/2019
    Messages :
    8

    Bonjour,

    Pour résumer, je souhaite insérer des données dans une de mes table, dont la relatrion est "ManyToMany" avec une autre table. Il y a donc une table pivot. Mais je n'y parviens pas.

    Les tables :

    • taches
    • executant_tache (table pivot)
    • executants

    Les models ont été créés :

    • Tache
    • Executant

    Vous l'aurez compris probablement, ici, certaines tâches peuvent dépendre d'une ou plusieurs personnes (executants).

    Je souhaiterai insérer des données réelles pour la table executants (sans Faker) car je générer des tâches par la suite qui appartiendront à un ou plusieurs executant pré-défini.

    Voici le modèle :
    task-manager

    Pour peupler d'autre table de relation 1:N comme la table "etats" associée à "taches" par exemple, j'ai créer le fichier EtatsTableSeeder.php en insérant les données que je voulais. Cela n'a pas posé de problème.

    Mais lorsque je souhaite insérer des données pré-définies dans ma table "executants", je n'y parviens pas :

    php artisan db:seed --class=PostesTableSeeder
    ReflectionException : Class ExecutantsTableSeeder does not exist

    at /vagrant/suivi-fdm/vendor/laravel/framework/src/Illuminate/Container/Container.php:779
    775| if ($concrete instanceof Closure) {
    776| return $concrete($this, $this->getLastParameterOverride());
    777| }
    778|
    > 779| $reflector = new ReflectionClass($concrete);
    780|
    781| // If the type is not instantiable, the developer is attempting to resolve
    782| // an abstract type such as an Interface or Abstract Class and there is
    783| // no binding registered for the abstractions so we need to bail out.
    Exception trace:

    1 ReflectionClass::__construct("ExecutantsTableSeeder")
    /vagrant/suivi-fdm/vendor/laravel/framework/src/Illuminate/Container/Container.php:779

    2 Illuminate\Container\Container::build("ExecutantsTableSeeder")
    /vagrant/suivi-fdm/vendor/laravel/framework/src/Illuminate/Container/Container.php:658

    Please use the argument -v to see more details.

    Exemple de code pour seeder la table ExecutantsTableSeeder.php :

    public function run()
    {
    Executant::insert([
    'nom' => 'Romain'
    ]);
    [...]

    N'hésitez pas à me demander si vous avez besoin d'informations complémentaires.

    Merci !

  • Avatar de Pakito
    Membre depuis :
    07/02/2019
    Messages :
    8

    EDIT : Solution résolue après un :

    composer dumpautoload

    Lien vers la solution : StackOvrflow

Vous ne pouvez pas répondre à ce sujet.