我目前有以下代码:
public static $validate = array(
'first_name'=>'required',
'last_name'=>'required',
'email'=>'required|email'
);
public static $validateCreate = array(
'first_name'=>'required',
'last_name'=>'required',
'email'=>'required|email',
'password'=>'required|min:6'
);
我想知道是否可以引用第一个静态验证数组,只需添加额外的一个验证规则,而不像我现在那样重写整个规则。
我知道你不能引用静态声明中的任何变量,但我想知道是否有更好的方法在模型中存储模型验证规则。
答案 0 :(得分:2)
您可以使用array_merge合并$validate
和$validateCreate
的唯一键/值。此外,由于您使用的是静态变量,因此您可以像模型PHP文件中的所有代码一样执行以下操作:
class User extends Eloquent {
public static $validate = array(
'first_name'=>'required',
'last_name'=>'required',
'email'=>'required|email'
);
public static $validateCreate = array(
'password'=>'required|min:6'
);
public static function initValidation()
{
User::$validateCreate = array_merge(User::$validate,User::$validateCreate);
}
}
User::initValidation();
答案 1 :(得分:0)
您可以在需要时直接在静态数组中添加额外字段,例如
function validate()
{
if($userIsToBeCreated)
{
static::$validate['password'] = 'password'=>'required|min:6';
}
// stuff here
}