php静态数组变量

时间:2014-04-21 22:45:53

标签: php laravel

我目前有以下代码:

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'
);

我想知道是否可以引用第一个静态验证数组,只需添加额外的一个验证规则,而不像我现在那样重写整个规则。

我知道你不能引用静态声明中的任何变量,但我想知道是否有更好的方法在模型中存储模型验证规则。

2 个答案:

答案 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
}