clarkf / simply-valid
Requires
- php: >= 5.3.0
- illuminate/database: ~4.1
- illuminate/support: ~4.1
- illuminate/validation: ~4.1
Requires (Dev)
- illuminate/foundation: ~4.1
- mockery/mockery: ~0.8
- phpmd/phpmd: ~1.5
- phpunit/phpunit: ~3.7
- satooshi/php-coveralls: ~0.6
- squizlabs/php_codesniffer: ~1.5
This package is not auto-updated.
Last update: 2024-09-28 14:32:52 UTC
README
为您的 Eloquent 模型提供自动验证。
安装
将 clarkf/simply-valid
添加到您的 composer.json
{ "require": { "clarkf/simply-valid": ">= 1.0" } }
使用 - 简易模式
扩展 SimplyValid\Model
<?php class MyModel extends SimplyValid\Model { protected $rules = array( // validation rules here ); }
save()
save()
在您的模型中将返回 false
,如果模型无效,这意味着您可以在控制器中做一些有趣的事情,比如
public function store() { $model = new MyModel(Input::get()); if ($model->save()) { // Model is valid, and has been saved! } else { // Handle validation problems here } }
errors()
想要处理模型错误吗?通过调用 errors()
获取错误 MessageBag
<div class='field'> {{ Form::text('name') }} @if ($model->errors()->has('name')) <div class='field-error'> {{ $model->errors()->first('name') }} </div> @endif </div>
使用 - 高级模式
SimplyValid 的核心是使用观察者确保模型在无效时不保存。如果您不想扩展或无法扩展 SimplyValid\Model
,您只需使用观察者即可!
<?php class MyModel extends Eloquent { public $rules = array( // Validator rules here ); public static function boot() { parent::boot(); static::observe(new SimplyValid\ValidityObserver()); } }
获取错误
如果一个模型被确定包含错误,将发出一个 errors
事件。您可以通过使用 registerModelEvent
处理此事件并获取错误
public static function boot() { parent::boot(); // ... static::registerModelEvent('errors', function (MyModel $model, MessageBag $errors) { // Store the errors somewhere useful, for example $model->errors = $errors; }); }
定义规则
SimplyValid 不关心您的规则是什么-- 它依赖于 Laravel 的 Validator 类。尽管如此,它仍然提供了一定的灵活性:一个公开方法(getValidationRules
)优先于一个公开属性($rules
)。如果您需要计算规则,这会很有用。
class User extends SimplyValid\Model { public function getValidationRules() { $rules = array(); if (!$this->exists) { // User has not yet been created, so a password is required $rules['password'] = array('required'); } return $rules; } }
许可
MIT 许可证 (MIT)
版权所有 (c) 2014 Clark Fischer
在此特此授予任何人无限制地使用本软件及其相关文档文件(“软件”)的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许向软件提供方提供软件的人这样做,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的副本或主要部分中。
软件按“原样”提供,不提供任何形式的保证,无论是明示的还是隐含的,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论是基于合同、侵权或其他原因引起的,与软件或其使用或以任何其他方式有关。