2014-06-06 81 views
1

我想知道如果可以將變量添加到laravel框架中的驗證規則中,是否可能。Laravel驗證中的變量

例如:

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

但這個工程:

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

但是,這似乎並沒有做到這一點。

有沒有人有解決方案?

+0

什麼不起作用?什麼'Auth :: user() - > role-> filesize'返回,你現在得到什麼? –

+0

編輯我的帖子到一個更清晰的例子 – Gio

+0

這是否適用於''文件'=>'最大:2000'? –

回答

2

根據您的代碼段,您正試圖在聲明規則屬性時設置規則。如果您在設置規則的對象屬性,你應該這樣做在__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()或者在您驗證之前。

+0

更改我的第一篇文章,現在的示例也不起作用。 – Gio

+0

我知道,答案仍然適用。按照我給出的建議來解決問題。 –

2

有同樣的問題。 對於laravel,我是個新手,但我所做的是在窗體上添加一個隱藏字段,並使用我想要使用的值。然後我只需在驗證器中添加這樣的字段。

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

... 

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