engency / laravel-model-validation
Laravel项目中的模型验证
v0.3.1
2024-07-23 12:24 UTC
Requires
- php: ^7.4|^8.0
- illuminate/database: ^7.0|^8.0|^9.0|^10.0|^11.0
- illuminate/validation: ^7.0|^8.0|^9.0|^10.0|^11.0
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-23 12:49:16 UTC
README
需求
- PHP 7.1+
- The Laravel框架 7.0+
安装
您可以使用composer将laravel-model-validation插件安装到您的Laravel项目中;
composer require engency/laravel-model-validation
在您想要进行验证的模型上使用Validatable特质。
namespace App\Models; use Illuminate\Database\Eloquent\Model; use Engency\ModelValidation\Validatable; Class User extends Model { use Validatable; }
在app目录下创建一个名为'ModelValidators'的新目录。该目录将包含适用于相关模型的所有规则。对于每个使用Validatable特质的模型,创建一个名为{name of the model}ModelValidator.php的文件。ModelValidator应类似于以下内容;
namespace App\ModelValidators; use Engency\ModelValidation\ModelValidator; Class UserModelValidator extends ModelValidator { /** * @return array */ public function rules() : array { return [ 'name' => 'required|string' ]; } }
验证和创建新用户现在非常简单;
$user = User::validateAndCreateNew(['name' => 'John']);
更新现有用户的工作方式几乎相同;
$user->validateAndUpdate(['name' => 'John']);
您可以为每个模型添加额外的规则集;
namespace App\ModelValidators; use Engency\ModelValidation\ModelValidator; Class UserModelValidator extends ModelValidator { /** * @return array */ public function rules() : array { return [ 'name' => 'required|string' ]; } public function otherRules() : array { return [ 'name' => 'required|string|min:5', 'age' => 'required|integer|min:22' ]; } }
$user = User::validateAndCreateNew(['name' => 'John', 'age' => 25], 'other'); $user->validateAndUpdate(['name' => 'John', 'age' => 25], 'other');
有关所有规则的列表,请访问Laravel验证文档; https://laravel.net.cn/docs/validation
贡献者
- Frank Kuipers (GitHub)
许可证
此插件受MIT许可证许可。