调用未定义的方法stdClass :: save()

Oun*_*wnO 7 php laravel eloquent laravel-5 laravel-5.2

我正在尝试保存到数据库中,但我经常遇到此错误

调用未定义的方法stdClass :: save()

我的控制器

 $c = DB::table('subject_user')->where('user_id', $value)->first();

 $c->auth_teacher = '1';

 $c->save();
Run Code Online (Sandbox Code Playgroud)

502*_*eek 10

试试这种方法

我没有尝试条件的save方法where.希望这种方法可以解决您的问题.

 DB::table('subject_user')->where('user_id', $value)->update(['auth_teacher' => 1]);
Run Code Online (Sandbox Code Playgroud)


Rya*_*yan 10

我刚刚遇到了同样的问题,并找出了真正的 Laravel 答案。

您在此处接受的答案 ( /sf/answers/2873636251/ ) 并未遵循最真实的 Laravel 方式。

当我在https://laravel.com/docs/5.4/eloquent#retrieving-models重新阅读文档时,我注意到->save()只有当我检索对象的方式是通过这样的模型时才会起作用:

$flights = App\Flight::where('active', 1)
           ->orderBy('name', 'desc')
           ->take(10)
           ->get();
Run Code Online (Sandbox Code Playgroud)

没有必要在DB::table()任何地方使用,使用它似乎不是推荐的方式。

因此,您可以更改DB::table('subject_user')->whereApp\Subject_user::where(或任何适合您的)。

  • 这是更合适的答案。 (2认同)