2016-08-12 170 views
0

我有具有PAGE_COUNT領域的打印機型號會比現有的值..創建laravel自定義驗證,其中輸入值必須在數據庫

用戶將可以輸入當前PAGE_COUNT ..

新的page_count必須大於數據庫中現有的數據......我該怎麼做?

+3

從數據庫獲取數據並驗證' 'PAGE_COUNT' 使用=> '需要|分鐘:'。$ myValue)...'。請參閱https://laravel.com/docs/5.2/validation –

+0

謝謝..我會暫時使用它。 – cabs

+0

我剛更改了自定義的錯誤信息。 – cabs

回答

0

假設您有Printer型號,其中包含page_count列。
您可以在您的AppServiceProviderboot()方法中定義自定義驗證規則。

public function boot() 
    { 
     //your other code 

     Validator::extend('page_count', function($attribute, $value, $parameters, $validator) { 
        $page_count = Printer::find(1)->first()->value('page_count'); //replace this with your method of getting page count. 
        //If it depends on any extra parameter you can pass it as a parameter in the validation rule and extract it here using $parameter variable. 
        return $value >= $page_count; 
       }); 

     //your other code 
    } 

然後,你可以在你的驗證規則使用它像下面

'page_count' => 'required|page_count' 

參考:Laravel Custom Validation

+0

如果您有任何問題,請告訴我 – jaysingkar

0

我已經解決了這樣同樣的問題,雖然已經有人送的解決方案在評論部分。

/** 
    * @param array $data 
    * validates and Stores the application data 
    * 
    */ 
    public function sendMoney(Request $request) 
    { 
     //get the value to be validated against 
     $balance = Auth::user()->balance; 
     $validator = Validator::make($request->all(), [ 
      'send_to_address' => 'required', 
      'amount_to_send' => 'required|max:'.$balance.'|min:0.01|numeric', 
     ]); 
    //some logic goes here 
    } 

根據您的使用情況,你可以修改...

編碼快樂