我想知道如果可以在laravel框架中向验证规则添加变量是否可行。
例如:
$size= 2000;
public static $rules = array(
'filename'=>'required',
'file' => 'max:' . $this->size
);
但这有效:
public static $rules = array(
'filename'=>'required',
'file' => 'max:2000'
);
但这似乎并没有。
有人有解决方案吗?
答案 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'
);