データベースに保存しようとしていますが、常にこのエラーが発生します
未定義のメソッドstdClass :: save()の呼び出し
私のコントローラー
$c = DB::table('subject_user')->where('user_id', $value)->first();
$c->auth_teacher = '1';
$c->save();
このアプローチを試してください
save
条件でwhere
メソッドを試していません。うまくいけば、このアプローチで問題が解決する可能性があります。
DB::table('subject_user')->where('user_id', $value)->update(['auth_teacher' => 1]);
私は同じ問題に遭遇し、本当のLaravel答えを見つけました。
ここで受け入れた答え( https://stackoverflow.com/a/41051946/470749 )は、真のLaravelの方法に従っていません。
https://laravel.com/docs/5.4/eloquent#retrieving-models でドキュメントをもう一度読んだとき、->save()
が機能するのは、私は取得オブジェクトは次のようなモデルを介していた:
_$flights = App\Flight::where('active', 1)
->orderBy('name', 'desc')
->take(10)
->get();
_
どこでもDB::table()
を使用する必要はありません。推奨される方法ではないようです。
したがって、DB::table('subject_user')->where
を_App\Subject_user::where
_(または適切なもの)に変更できます。
ここで読むことができるように、レコードを保存/更新するには2つの方法があります。あなたの場合、あなたは次のことをする必要があります: https://laravel.com/docs/6.x/queries#updates
$affected = DB::table('users')
->where('id', 1)
->update(['votes' => 1]);
DB :: table( 'subject_user')-> where( 'user_id'、$ value)-> update(['auth_teacher' => 1]);
私はこれで成功することができました。