Heim  >  Fragen und Antworten  >  Hauptteil

Probleme beim Schreiben von Daten in zugehörige Tabellen, wenn Laravel DB-Klassen verwendet

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

Antworte allen(1)Ich werde antworten

  • 黄舟

    黄舟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 值。

    Antwort
    0
  • StornierenAntwort