对于laravel官网上是这样讲的“在建立一个新的模型时,您把属性以数组的方式传入模型的构造方法,这些属性值会经由批量赋值存成模型数据。这一点非常方便,然而,若盲目地将用户输入存到模型时,可能会造成严重的安全隐患。如果盲目的存入用户输入,用户可以随意的修改任何以及所有模型的属性。基于这个理由,所有的 Eloquent 模型默认会阻止批量赋值 ”,可咋听了都有些稀里糊涂的,下面用实例演示下这两个字段如何使用。
1. 例如user表中有 id name password ip 字段
.在user模型中定义
$fillable = ['password','ip'];
$guarded = ['id','name'];
.在controller中接受传递过来的值
$user = new user(Input::all());
dd($user->toArray());//传递过来的值例如是['id'=>1,'name'=>'ixibei','password'=>'123','ip'=>'123'];而此时打印的值只有['password'=>'123','ip'=>'123']了。因为此时由于模型中只允许添加password和ip两个字段,过滤掉了id和name字段,所以可以对敏感数据提供了一定的安全保证
$user->save();//保存了修改的数据
注意:也可以使用user::create(Input::all());直接添加一条数据也是适用的。
结束语
本文有任何错误,或有任何疑问,欢迎留言说明。
网友最新评论