假设我想将以下逻辑应用于我的所有 Model 类:
All Model class with auto incremental id should have
protected $guarded = ['id']
这样我就不会自己不小心插入增量 ID。
在 Laravel 5 中有意义吗?
除了设置
protected $guarded = ['id']
之外,我还有其他方法可以实现吗?在每个模型类中?
最佳答案
如果您遵循已接受的答案,您可以 仍然手动设置 id
,实际上,我实际上会说这个答案会使您的应用程序的安全性变得更糟。
Laravel 已经默认保护所有内容:protected $guarded = ['*'];
因此,无需指定 id
当它是已经守卫。当您覆盖该属性时,您是在告诉 Laravel,“实际上,不要保护一切。只保护我指定的属性。”因此,本质上,您正在解除对其他属性的保护。
此外,如果您要手动分配这样的属性:
$model = new Model;
$model->id = 1;
$model->name = 'Example';
$model->save();
$guarded
/$fillable
属性永远不会起作用。当您使用 create
之类的方法时,它们就会起作用。 , update
, fill
, 等等。
关于php - 显式定义 $guarded= ['id' ] 以防止意外插入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31917075/