ielijose/database

此包的最新版本(dev-master)没有可用的许可证信息。

dev-master 2014-08-28 17:48 UTC

This package is not auto-updated.

Last update: 2024-09-24 07:37:26 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()) ...

就这么多!祝您玩得开心。