保存模型时 Laravel 模型尾随数据

我有一些这样的代码

    $editStuState = StuAtt::where('studentId' , '=' , $id)->first();
    $editStuState -> leave +=1;
    $editStuState -> present = $editStuState -> present-1;
    $editStuState->update();
                            //OR
    $editStuState->save();
    return 'this is good';

我无法保存或更新我的数据,当我删除更新和保存相关行时,它可以打印文本.

I can't save or Update my data, when I remove Update and Save related line it can print text.

这是dd($editStuState)数据

StuAtt {#382 ▼
  #table: "stu_attendance"
  #connection: "mysql"
  #primaryKey: "id"
  #keyType: "int"
  +incrementing: true
  #with: []
  #withCount: []
  #perPage: 15
  +exists: true
  +wasRecentlyCreated: false
  #attributes: array:7 [▼
    "id" => "7"
    "studentId" => "1"
    "present" => "2"
    "absent" => "1"
    "leave" => "10"
    "created_at" => "2018-04-16 11:17:41.176898"
    "updated_at" => "2018-04-16 06:47:41.000000"
  ]
  #original: array:7 [▼
    "id" => "7"
    "studentId" => "1"
    "present" => "2"
    "absent" => "1"
    "leave" => "10"
    "created_at" => "2018-04-16 11:17:41.176898"
    "updated_at" => "2018-04-16 06:47:41.000000"
  ]
  #changes: []
  #casts: []
  #dates: []
  #dateFormat: null
  #appends: []
  #dispatchesEvents: []
  #observables: []
  #relations: []
  #touches: []
  +timestamps: true
  #hidden: []
  #visible: []
  #fillable: []
  #guarded: array:1 [▶]
}

我也从 laravel 5.6 得到这个错误

I also got this error form laravel 5.6 it

InvalidArgumentException
Trailing data

推荐答案

如果您使用 Postgres,则必须向模型添加一些行.这是因为 Postgres 中的 TIME WITH TIMEZONE.

If you are using Postgres you have to add some lines to your Model(s). It happens because of TIME WITH TIMEZONE in Postgres.

另请阅读 Date Mutators 因为 Laravel 已经支持此功能,只需在您的模型中放置以下行以覆盖该模型的默认日期格式:https://laravel.com/docs/5.7/eloquent-mutators#date-mutators

Please also read Date Mutators as Laravel already has support for this baked in, simply put below line in your Model to override the default dateFormat for that model: https://laravel.com/docs/5.7/eloquent-mutators#date-mutators

转到您的应用程序/模型(在 app 文件夹下,exp. User,SomeModel)添加以下行:

Go to your App/Model (under app folder, exp. User, SomeModel) add below line:

protected $dateFormat = 'Y-m-d H:i:sO';

最佳

相关文章