簡體   English   中英

Laravel 5:如何在validate()中插入錯誤自定義消息數組

[英]Laravel 5: How to insert error custom messages array inside validate()

我想將我的驗證自定義消息插入到validate函數中,如下所示:

public function postLogin(Request $request)
    {
        $rulesemail=['required'=>'Este campo es requerido.'];
        $rulespassword=['min'=>'Debe teclear al menos :min caracteres','required'=>'Favor de teclear su contraseña'];
        $this->validate($request, [
            'email' => 'required|email|max:60', 'password' => 'required|min:6'],$rulespassword
        );

但是我無法使它工作。 有任何想法嗎?

您不能使用ValidatesRequests特征中的默認validate()

但是,您可以在基本控制器中覆蓋該功能以更改該功能:

public function validate(Request $request, array $rules, array $messages = array())
{
    $validator = $this->getValidationFactory()->make($request->all(), $rules, $messages);

    if ($validator->fails())
    {
        $this->throwValidationException($request, $validator);
    }
}

然后只需將自定義消息作為第三個參數傳遞:

$rulesemail=['required'=>'Este campo es requerido.'];
$messages=['min'=>'Debe teclear al menos :min caracteres','required'=>'Favor de teclear su contraseña'];
$this->validate($request, [
    'email' => 'required|email|max:60',
    'password' => 'required|min:6'
], $messages);

請記住,您還可以在語言文件中全局定義驗證消息 該文件通常位於resources/lang/xx/validation.php

validate()方法接受3個參數:

要求$ request,[$ errors],[$ messages]

這是有關如何為驗證條件自定義錯誤消息的示例:

    $this->validate(
        $request,
        [
            'first_name'=> 'required',
            'last_name'=> 'required',
            'email' => 'email',
            'date_of_birth' => 'date_format:"Y-m-d"'
        ],
        [
            'date_format' => 'DOB'
        ]
    );

PHPStorm提供了有用的工具提示,可立即查看方法選項。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM