padosoft/laravel-validable

特质,用于在保存Eloquent模型时激活验证

1.6.0 2024-05-20 10:36 UTC

README

Latest Version on Packagist Software License CircleCI Quality Score Total Downloads

此包提供了一个特质,当保存/更新/删除带有上传表单请求的任何Eloquent模型时,将自动处理上传。

##要求

  • php: >=7.0.0
  • illuminate/database: ^5.0|^6.0|^7.0|^8.0|^9.0|^10.0
  • illuminate/support: ^5.0|^6.0|^7.0|^8.0|^9.0|^10.0
  • illuminate/validation: ^5.0|^6.0|^7.0|^8.0|^9.0|^10.0

安装

您可以通过composer安装此包。

$ composer require padosoft/laravel-validable

用法

您的Eloquent模型应使用Padosoft\Laravel\Validable\Validable特质。

您必须在模型中定义protected static $rules规则数组。您还可以在模型中定义protected static $messages自定义消息数组。

以下是实现特质的示例:

<?php

namespace App;

use Padosoft\Laravel\Validable\Validable;
use Illuminate\Database\Eloquent\Model;

class YourEloquentModel extends Model
{
    use Validable;
    protected static $rules = [
            'name'=>'required|max:10',
            'order'=>'sometimes|integer|max:10',
        ];
    
        protected static $messages = [
            'name.required'=>'obbligatorio'
        ];
}

您可以为仅更新方法编写特定的验证

class YourEloquentModel extends Model
{
    use Validable;
    protected static $rules = [
            'name'=>'required|max:10|unique:table,field',
            'order'=>'sometimes|integer|max:10',
        ];
    protected static $updating_rules = [
                'name'=>'required|max:10|unique:table,field,[id]',
                'order'=>'sometimes|integer|max:10',
            ];
        protected static $messages = [
            'name.required'=>'obbligatorio'
        ];
}

注意: [id]将在运行时被模型属性覆盖。

您可以通过这种方式检查模型是否已保存

$model = new YourEloquentModel;
$model->name='test';
if (!$model->save()){
    $erros=$model->getErrors();
}

您可以获取模型的验证规则

$rules=YourEloquentModel::getRules();

有关所有可用方法,请参阅Validable特质。

变更日志

请参阅CHANGELOG以获取有关最近更改的更多信息。

测试

$ composer test

贡献

请参阅CONTRIBUTING以获取详细信息。

安全

如果您发现任何与安全相关的问题,请通过电子邮件而不是使用问题跟踪器。

鸣谢

https://github.com/JeffreyWay/Laravel-Model-Validation的启发

关于Padosoft

Padosoft (https://www.padosoft.com) 是一家位于意大利佛罗伦萨的软件公司。专注于电子商务和网站。

许可

MIT许可 (MIT)。有关更多信息,请参阅许可文件