laravel 插入或更新时,数据库字段严格匹配?

laravel有这样的功能吗:

在插入或更新数据时,严格匹配传递进来的数据是否为数据库字段,多的数据丢弃或者跑出异常。

例如thinkphp类似这样的功能:

模型中,使用allowField

    $user = new User();
    // 过滤post数组中的非数据表字段数据
    $user->allowField(true)->save($_POST,['id' => 1]);

使用DB时,用strict

    // 关闭字段严格检查
    Db::name('user')
        ->strict(false)
        ->insert($data);

如果没有,请问添加这样的功能复杂吗?
(刚入门laravel,虚心学习)

阅读 7.8k
2 个回答

如果是用create(),例如DB::table('xxx')->create(['xx'=>'xx'])(或者用Model操作create(['xx'=>'xxx']))
插入多条记录的话,可在model里面用$fillable变量对插入的表字段进行白名单式控制.也就是说插入的时候,只能插入$fillable指定的。例如:

$fillable = ['field1','field2'];

字段获取可以用 request->only('field1','field2')来获取你指定的字段名字;

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题