无法向表中添加以下划线(Laravel)开头的变量

时间:2019-06-11 13:10:02

标签: php mysql laravel

我无法为MySQL添加价值,因为行名以_

开头
  

SQLSTATE [HY000]:常规错误:1364字段'_user_id'没有   默认值

我无法更改SQL表首选项,因为我们正在使用旧数据库编写新项目。

     $attributes = request()->validate([
        'cert_id' => 'required',
        'issuer_country' => 'required',
        'is_flag' => '',
        'is_unlimited' => '',
        'issuer' => '',
        'from_date' => 'required',
        'to_date' => 'required',
        'licence_number' => 'required',
     ]);

     $attributes['_user_id'] = 1;

     SeamanCert::create($attributes);

     class SeamanCert extends Model
     {
         protected $guarded = [];
         public $timestamps = false;
     }

2 个答案:

答案 0 :(得分:0)

这是因为Eloquent拒绝以下划线开头的列。

试试这个:

DB::table('table_name')->insert($attributes);

答案 1 :(得分:0)

Laravel命名link有一个约定。

正如Motia所说,命名约定可以帮助您避免错误。

如果您不能更改数据库表,则应考虑使用 Query Builder而不是Eloquent。

相关问题