Laravel验证中的变量

时间:2014-06-06 22:56:27

标签: php variables laravel rules

我想知道如果可以在laravel框架中向验证规则添加变量是否可行。

例如:

$size= 2000;
public static $rules = array(
        'filename'=>'required', 
        'file' => 'max:' . $this->size
    );

但这有效:

public static $rules = array(
        'filename'=>'required', 
        'file' => 'max:2000'
    );

但这似乎并没有。

有人有解决方案吗?

2 个答案:

答案 0 :(得分:2)

根据您的代码段,您在声明rules属性时尝试设置规则。如果要将规则设置为对象属性,则应在__construct()中执行此操作,因为在声明变量时无法执行此操作

<?php
class foo{
    public static $var=[
        'asdf'=>1234,
        'qwerty'=>bar::returnVar()
    ];
}
class bar{
    public static function returnVar(){
        return 5678;
    }

}
print_r(foo::$var);

以上代码段引发错误Parse error: syntax error, unexpected '(', expecting ']' in C:\scripts\test.php on line 5

所以,最好的办法是在__construct()或您验证之前设置它。

答案 1 :(得分:2)

有同样的问题。 当谈到laravel时,我是一个新手,但我所做的是在表单上添加一个隐藏字段,并使用我想要使用的值。然后我只需要在验证器中添加这样的字段。

{{ Form::hidden('max', 2000 }}

...

public static $rules = array(
    'filename'=>'required', 
    'file' => 'max:max'
);