私は、データベースに保存しようとしているが、私は常にこのエラーに未定義のメソッドはstdClassにコール::セーブ()
コール::セーブ()
私のコントローラ
を取得$c = DB::table('subject_user')->where('user_id', $value)->first();
$c->auth_teacher = '1';
$c->save();
私は、データベースに保存しようとしているが、私は常にこのエラーに未定義のメソッドはstdClassにコール::セーブ()
コール::セーブ()
私のコントローラ
を取得$c = DB::table('subject_user')->where('user_id', $value)->first();
$c->auth_teacher = '1';
$c->save();
は私がwhere
条件でsave
方法を試していない
このアプローチを試してみてください。うまくいけば、このアプローチはあなたの問題を解決するかもしれません。
DB::table('subject_user')->where('user_id', $value)->update(['auth_teacher' => 1]);
DB :: table( 'subject_user') - >( 'user_id'、$ value) - > update(['auth_teacher' => 1);
私はこれで成功することができました。
私はちょうど同じ問題に遭遇したと本物のLaravelの答えを考え出しました。
あなたがここで受け入れた答え(https://stackoverflow.com/a/41051946/470749)は、真のララベルの方法に従いません。
$flights = App\Flight::where('active', 1)
->orderBy('name', 'desc')
->take(10)
->get();
があります:私はhttps://laravel.com/docs/5.4/eloquent#retrieving-modelsでドキュメントを再読み込み
は、私が->save()
は私、取得方法は、対象物(s)は、このようなモデルを経てた場合にのみ動作することに気づきましたDB::table()
をどこにでも使用する必要はなく、推奨する方法ではありません。
DB::table('subject_user')->where
をApp\Subject_user::where
(またはあなたにとって適切なもの)に変更することができます。
これはより適切な答えです。 – Conan
Eloquentモデルで悲観的なロックを使用することはできないようです。競合状態を防ぐ必要がある場合は、DB :: table()が必須です。 – patrickdamery
subject_userテーブル用に作成されたモデルがありますか? DB :: tableメソッドは、saveメソッドを持つオブジェクトを返しません。 – MMMTroy
いいえピボットテーブルだけなので、私は直接それに行くよ – OunknownO
あなたがユニークなシナリオを持っていない限り、私はモデルを使ってこれを試してみたいと思います。あなたはあなたの多対多関係のピボット値を持っているようです。次のスタックスレッドはまったく役に立ちますか? http://stackoverflow.com/a/21942374/3750476。あなたのコードは次のようになります。 $ user-> subjects() - > updateExistingPivot($ subject-> id、array( 'auth_teacher' => 1)、false); – MMMTroy