2016-10-06 80 views
1

我在登錄後獲得方法:LARAVEL 5.3 - 忽略驗證自定義消息

$validator = Validator::make(
    $request->all(), 
    [ 
     'user' => 'required', 
     'password' => 'required' 
    ],[ 
     'user' => 'Username is required', 
     'password' => 'Password is required' 
    ] 
); 

但除非我改變'password' => 'Password is required''password.required' => 'Password is required',被忽略的自定義消息,默認發送到視圖。

我真的必須在郵件中指定規則還是我做錯了什麼?

回答

0

Laravel首先查找自定義消息,如果它不能找到一個然後回落到正常的驗證消息。

'password' => 'Password is required'不適用於您已設置的必需驗證。所以默認消息正在工作。您必須在特定的錯誤類型上編寫自定義消息。

例如:密碼是必需的,也應該是整數,然後

$validator = \Validator::make(
     $request->all(), 
     [ 
      'password' => 'required|integer' 
     ],[ 
      'password.integer' => 'Password needs to be interger', 
      'password.required' => 'Password is required' 
     ] 
); 

注意:您還可以設置您的自定義消息在validation.php文件,並在自定義的數組添加您的郵件。您將能夠在全球範圍內使用您的自定義消息。

'custom' => [ 
    'attribute-name' => [ 
     'rule-name' => 'custom-message', 
    ], 
] 
+0

自定義消息應該在默認值之前去,如果它的泛型或不,但我想它必須做 –

0

難道我真的要在郵件中指定規則還是我在做 有什麼不對嗎?

'必需'規則已經有一個默認消息。你可以放棄它。因此,這將工作:

$validator = Validator::make(
    $request->all(), 
    [ 
     'user' => 'required', 
     'password' => 'required' 
    ] 
); 

https://laravel.com/docs/5.3/validation#working-with-error-messages

+0

我不想使用默認消息 –

0

我的想法是創造像EN特定語言郎文件夾,ES新的文件請求和使用到指定表單創建請求模式這一點。