laravel 中$guarded 和 $fillable 怎么用,有什么区别

ixibei 发表于 分类:Php / laravel 阅读(2691) 评论(0)

简介:

对于laravel官网上是这样讲的“在建立一个新的模型时,您把属性以数组的方式传入模型的构造方法,这些属性值会经由批量赋值存成模型数据。这一点非常方便,然而,若盲目地将用户输入存到模型时,可能会造成严重的安全隐患。如果盲目的存入用户输入,用…

对于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());直接添加一条数据也是适用的。


 


结束语

本文有任何错误,或有任何疑问,欢迎留言说明。

下一篇:  >>

本站文章除注明转载外,均为原创文章,会经常更新知识点以及修正一些错误,因此转载请保留原出处,方便溯源,避免陈旧错误知识的误导,同时有更好的阅读体验。

http://www.onephper.com/archive/6.html

相关推荐

评论

回复给XXX取消回复

说点什么吧...

网友最新评论

输入关键字