Ich lief gerade in das gleiche Problem und fand die wirkliche Laravel Antwort heraus.
Die Antwort, die Sie hier akzeptiert haben (https://stackoverflow.com/a/41051946/470749), folgt nicht dem wahrsten Laravel-Weg.
Als ich die Dokumentation bei https://laravel.com/docs/5.4/eloquent#retrieving-models wieder lesen, bemerkte ich, dass ->save()
nur funktionieren, wenn die Art und Weise, die ich abgerufen das Objekt (e) über das Modell wie folgt war:
$flights = App\Flight::where('active', 1)
->orderBy('name', 'desc')
->take(10)
->get();
Es gibt Keine Notwendigkeit, DB::table()
irgendwo zu verwenden, und es scheint nicht der empfohlene Weg zu sein.
So könnten Sie DB::table('subject_user')->where
zu App\Subject_user::where
(oder was auch immer für Sie geeignet ist) ändern.
Haben Sie ein Modell für die Tabelle subject_user erstellt? Die Methode DB :: table gibt Ihnen kein Objekt mit einer Speichermethode zurück. – MMMTroy
nein ich nicht, weil das ist eine Pivot-Tabelle nur ich gehe direkt darauf – OunknownO
Sofern Sie ein einzigartiges Szenario haben, würde ich versuchen, dies mit Hilfe von Modellen zu tun. Offenbar haben Sie Pivot-Werte für Ihre Viele-zu-Viele-Beziehung. Hilft Ihnen der folgende Stack-Thread überhaupt? http://stackoverflow.com/a/21942374/3750476. Ihr Code könnte so aussehen. $ user-> subjects() -> updateExistingPivot ($ subject-> id, Feld ('auth_teacher' => 1), false); – MMMTroy