Heim > Fragen und Antworten > Hauptteil
Das Problem beim Schreiben von Daten in die zugehörige Tabelle, wenn Laravel die DB-Klasse verwendet:
Bei Verwendung der Fassade müssen Sie eine Rolle für den aktuellen Benutzer festlegen. Sie können $user->roles()->attach(1);
wie unten gezeigt verwenden:
public function run()
{
$user=User::create([
'name' => 'xiaoming',
'email' => 'xiaoming@example.com',
'password' => bcrypt('secret'),
]);
$user->roles()->attach(1);
}
Problem:
Jetzt müssen wir die DB-Klasse verwenden, um die oben genannten Funktionen auszuführen. Der folgende Code $user->roles()->attach(1);
kann nicht ausgeführt werden und
meldet einen Fehler:
[Symfony\Component\Debug\Exception\FatalThrowableError]
Call to a member function roles() on boolean
Wie soll ich es schreiben?
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
使用 DB 的时候,返回的是一个 bool 值:
$user=DB::table('users')->insert([
'name' => 'xiaoming',
'email' => 'xiaoming@example.com',
'password' => bcrypt('secret'),
]);
$user->roles()->attach(1);
$user 是一个 bool 值。