Problèmes d'écriture de données dans les tables associées lorsque Laravel utilise des classes DB
迷茫
迷茫 2017-05-16 16:47:37
0
1
396

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);
    }
迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

répondre à tous(1)
黄舟

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.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal