Maison > Questions et réponses > le corps du texte
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);
}
黄舟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.