[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

本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

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