J'essaie de sauvegarder dans la base de données mais j'obtiens constamment cette erreur
Appel à la méthode non définie stdClass :: save ()
mon contrôleur
$c = DB::table('subject_user')->where('user_id', $value)->first();
$c->auth_teacher = '1';
$c->save();
Essayez cette approche
Je n'ai pas essayé la méthode save
avec la condition where
. Espérons que cette approche pourra résoudre votre problème.
DB::table('subject_user')->where('user_id', $value)->update(['auth_teacher' => 1]);
Je viens de rencontrer le même problème et compris la vraie réponse Laravel.
La réponse que vous avez acceptée ici ( https://stackoverflow.com/a/41051946/470749 ) ne suit pas la méthode la plus vraie Laravel.
Lorsque je relis les docs sur https://laravel.com/docs/5.4/eloquent#retrieving-models , j’ai remarqué que ->save()
ne fonctionnerait que si la manière dont I récupérée la objet (s) était via le modèle comme ceci:
$flights = App\Flight::where('active', 1)
->orderBy('name', 'desc')
->take(10)
->get();
Il n'est pas nécessaire d'utiliser DB::table()
n'importe où, et son utilisation ne semble pas être la méthode recommandée.
Donc, vous pouvez changer DB::table('subject_user')->where
en App\Subject_user::where
(ou ce qui vous convient).
DB :: table ('subject_user') -> where ('user_id', $ value) -> update (['auth_teacher' => 1]);
J'ai pu réussir avec cela.