way/database2

此包已被废弃,不再维护。未建议替代包。
此包的最新版本(dev-master)没有可用的许可证信息。

dev-master 2014-07-07 12:29 UTC

This package is not auto-updated.

Last update: 2018-10-01 02:27:15 UTC


README

此包为您处理模型验证过程。无需手动进行繁琐的 Validator::make(...) 过程,只需保存模型,此包将处理其余部分。

用法

通过 Composer 安装此包。

{
    "require": {
        "laravel/framework": "4.0.*",
        "way/database": "dev-master"
    }
}

然后,而不是从您的模型扩展 Eloquent,扩展 Way\Database\Model,如下所示

<?php

class Dog extends Way\Database\Model {

}

或者,编辑 app/config/app.php,并在 aliases 数组中添加一个新项

'Model' => 'Way\Database\Model'

现在,您的模型可以简单地扩展 Model

<?php

class Dog extends Model {

}

验证

此包通过 Eloquent 的 save 事件进行挂钩,并自动将模型的当前属性与您为模型设置的规则进行验证。

以下是为模型设置验证规则的示例

<?php

class Dog extends Model {
    protected static $rules = [
        'name' => 'required'
    ];

    //Use this for custom messages
    protected static $messages = [
        'name.required' => 'My custom message for :attribute required'
    ];
}

现在,只需像往常一样保存模型,让包来处理验证。如果验证失败,则模型的 save 方法将返回 false。

以下存储新狗的示例

public function store()
{
    $dog = new Dog(Input::all());

    if ($dog->save())
    {
        return Redirect::route('dogs.index');
    }

    return Redirect::back()->withInput()->withErrors($dog->getErrors());
}

如果使用 Eloquent 的静态 create 方法,可以使用 hasErrors() 方法确定是否存在验证错误。

$dog = Dog::create(Input::all());

if ($dog->hasErrors()) ...

就这样!祝您玩得开心。