[Laravel 扩展推荐] Laravel Model Sanitize — 清除批量赋值里的非法数据

Laravel

Laravel Model SanitizeTouhidur Rahman 的一个包,用于在创建和更新记录时处理模型数据的 sanitization 过程。

如果对 User::create() 进行以下调用,Sanitize 包将自动删除不可填充的数据:

// Using the package's Sanitizable triat
use Touhidurabir\ModelSanitize\Sanitizable;
use Illuminate\Database\Eloquent\Model;

class User extends Model {
    use Sanitizable;
}

// 不是自动填充的字段,自动移除
$data = [
    'email' => 'somemail@test.com',
    'password' => 'password',
    'data' => 'some data' // 无效字段
];

User::create($data);

Sanitizable trait 将自动适用于各种创建和更新模型方法(例如,updateOrCreate、 firstOrCreate 等)。

如果你在模型上使用 $fillable ,则不需要使用这个包,但是,如果你使用 $guarded = [], 则该包将丢弃表中没有的列。

该包还有两个静态方法,用于将数据与相应的字段分离,以获取有效/无效数据:

$data = [
    'email' => 'somemail@test.com',
    'password' => 'password',
    'data' => 'some data',
    'name' => 'Test User'
];

// 获取有效字段
User::sanitize($data);
/*
[
    'email' => 'somemail@test.com',
    'password' => 'password',
    'name' => 'Test User'
]
*/

// 获取有效属性
User::gibberish($data);
/*
[
    'data' => 'some data',
]
*/

您可以了解更多关于这个包的信息,获得完整的安装说明,并在 GitHub 上查看源代码

本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://laravel-news.com/laravel-model-s...

译文地址:https://learnku.com/laravel/t/62585

本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!