ielijose / database
此包的最新版本(dev-master)没有可用的许可证信息。
dev-master
2014-08-28 17:48 UTC
Requires
- php: >=5.4.0
- illuminate/database: 4.2.x
- illuminate/support: 4.2.x
- illuminate/validation: 4.2.x
Requires (Dev)
- mockery/mockery: dev-master
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()) ...
就这么多!祝您玩得开心。