recherche

Maison  >  Questions et réponses  >  le corps du texte

Problèmes d'écriture de données dans les tables associées lorsque Laravel utilise des classes DB

Le problème de l'écriture de données dans la table associée lorsque laravel utilise la classe DB :

Lorsque vous utilisez la façade, vous devez définir un rôle pour l'utilisateur actuel. Vous pouvez utiliser $user->roles()->attach(1); comme indiqué ci-dessous :

.
    public function run()
    {
        $user=User::create([
            'name' => 'xiaoming',
            'email' => 'xiaoming@example.com',
            'password' => bcrypt('secret'),
            
        ]);
        $user->roles()->attach(1);
    }

Problème :
Nous devons maintenant utiliser la classe DB pour compléter les fonctions ci-dessus. Le code suivant $user->roles()->attach(1); ne peut pas être exécuté et
signalera une erreur :

.
  [Symfony\Component\Debug\Exception\FatalThrowableError]
  Call to a member function roles() on boolean

Comment dois-je l'écrire ?

    public function run()
    {
        $user=DB::table('users')->insert([
            'name' => 'xiaoming',
            'email' => 'xiaoming@example.com',
            'password' => bcrypt('secret'),
        ]);
        $user->roles()->attach(1);
    }
迷茫迷茫2755 Il y a quelques jours389

répondre à tous(1)je répondrai

  • 黄舟

    黄舟2017-05-16 16:49:37

    Lors de l'utilisation de DB, une valeur booléenne est renvoyée :

    $user=DB::table('users')->insert([
                'name' => 'xiaoming',
                'email' => 'xiaoming@example.com',
                'password' => bcrypt('secret'),
            ]);
    $user->roles()->attach(1);

    $user est une valeur booléenne.

    répondre
    0
  • Annulerrépondre