首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel型ID防护装置

Laravel型ID防护装置
EN

Stack Overflow用户
提问于 2017-10-21 10:12:17
回答 2查看 4.2K关注 0票数 4

假设我们有一个主题提交html表单,它使用以下输入字段名:

代码语言:javascript
复制
name
text

在控制器级别,我们可能编写了如下内容:

代码语言:javascript
复制
public function create(Request $request) {
   // Validation logic ...
   Topic::create($request->all());
}

如果客户端用户添加了一个id输入字段,该怎么办:

代码语言:javascript
复制
id
name
text

Laravel是否也会填充新模型对象的id字段?我可以保护模型的id吗?还是应该使用$request->only()

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-21 10:15:11

您不需要对主键使用$fillable数组或$guarded,这在默认情况下是id。在使用create()方法时,雄辩器不会填充主键。

票数 6
EN

Stack Overflow用户

发布于 2017-10-21 10:21:25

Laravel有两种实现这一目标的方法:

代码语言:javascript
复制
class Topic extends Model {
       protected $fillable = [
            "name" , "text"
       ];
}

另外,也有相反的情况:

代码语言:javascript
复制
class Topic extends Model {
      protected $guarded = [ "id" ];
} 

$fillable包含模型中允许大量分配的内容(通过填充或构造函数等),而$guarded包含不应该大量分配的内容。

更多信息请访问https://laravel.com/docs/5.5/eloquent#mass-assignment

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46862192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档