clarkf/simply-valid

v1.0.0 2014-02-02 21:07 UTC

This package is not auto-updated.

Last update: 2024-09-28 14:32:52 UTC


README

Build Status Coverage Status Latest Stable Version

为您的 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

在此特此授予任何人无限制地使用本软件及其相关文档文件(“软件”)的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许向软件提供方提供软件的人这样做,前提是遵守以下条件

上述版权声明和本许可声明应包含在软件的副本或主要部分中。

软件按“原样”提供,不提供任何形式的保证,无论是明示的还是隐含的,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论是基于合同、侵权或其他原因引起的,与软件或其使用或以任何其他方式有关。