olsgreen / laravel-guardian
Laravel 4.x 和 Eloquent 的简单基础类,用于自验证模型。
Requires
- php: >=5.3.0
- illuminate/support: 4.*
This package is auto-updated.
Last update: 2024-09-06 21:43:45 UTC
README
为更智能、更简洁的 Laravel 4 Eloquent ORM 提供自验证模型。灵感来自 Ardent。
安装
将我们的仓库添加到您的 composer.json
文件中,如下所示
"repositories": [{
"type": "vcs",
"url": "https://github.com/olsgreen/Guardian"
}],
还需要 Guardian
"require": {
"olsgreen/guardian": "dev-master"
},
然后运行 composer update
。
入门指南
Guardian 扩展了 Eloquent 模型,使其在需要时能够轻松地重置模型或删除。
要开始使用,只需将您的模型更改为从 Guardian
继承,并添加一个 getValidator()
方法,以便 Guardian
可以获取一个正确配置的 Validator
实例。
use Olsgreen\Guardian\Guardian;
class User extends Guardian {
........
/**
* Overridden from the base class
*
* @return Illuminate\Validation\Validator
*/
public function getValidator()
{
// Standard rules
$rules = array(
'first_name' => 'required|min:3',
'last_name' => 'required|min:3',
'username' => 'required|unique:users,username|min:2',
'password' => 'required|min:6',
'email' => 'email|unique:users,email',
);
// Rules for models that already exist
if ($this->exists) {
$rules['username'] = 'required|unique:users,username,' . $this->id . '|min:2';
$rules['email'] = 'email|unique:users,email,' . $this->id;
}
// Return the validator
return Validator::make($this->attributes, $rules);
}
........
}
验证错误
Guardian 会在调用 save()
时自动验证模型。如果验证失败,save()
将返回 false
,否则将返回 true
,前提是底层保存操作成功。
如果验证失败,您可以通过在模型上调用 getValidationMessages()
来获取包含验证错误的 MessageBag
。
在控制器中保存用户的示例
if (!$user->save()) {
return Redirect::route('user.form')->withErrors($user->getValidationMessages());
}
强制保存
您可以通过在模型上调用 forceSave()
来强制保存,完全绕过验证。
使用 fillFillable() 躲避 MassAssignmentExceptions
fillFillable()
允许您快速轻松地使用一个属性数组填充模型。此方法方便地绕过了使用 fill()
方法与 Input::all()
一起使用时生成的 MassAssignmentException
。以下是一个使用示例
$user = User::find(1);
$user->fillFillable(Input::all());
$user->save();
许可证
版权所有(c)2014 Oliver Green
特此授予任何获得此软件及其相关文档副本(“软件”)的人免费使用软件的权利,不受限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许向软件提供的人按以下条件这样做
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何形式的保证,无论是明示的还是暗示的,包括但不限于适销性、针对特定目的的适用性和非侵权性。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论是在合同、侵权或其他方式下,这些索赔、损害或其他责任源于、产生于或与软件或软件的使用或其他交易有关。