在Laravel请求中自定义验证消息

时间:2016-09-05 09:30:19

标签: laravel laravel-5.2

如何在“我的请求文件”中自定义验证消息?

如何在规则旁边添加消息? 我想要的是像普通验证一样放置自定义消息。可能吗?在请求中做正常的验证方式?

<?php

namespace App\Http\Requests;

use App\Http\Requests\Request;

class ArticleRequest extends Request
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
        'title' => 'required|min:5',
        'content' =>'required',
        'user_id' => 'required|numeric',
        'category_id' => 'required|numeric',
        'published_at' => 'required|date'
        ];
    }

}

3 个答案:

答案 0 :(得分:4)

您可以仅为该表单请求定义具有验证规则的messages()方法:

class StoreArticleRequest extends Request
{
    //

    public function messages()
    {
        return [
            'title.required' => 'The title is required.',
            'category_id.numeric' => 'Invalid category value.',
        ];
    }
}

它采用字段名称和规则名称的形式,中间有一个点,即field.rule

答案 1 :(得分:2)

  

您可以自定义表单请求使用的错误消息   覆盖消息方法。此方法应返回一个数组   属性/规则对及其相应的错误消息:

public function messages()
{
    return [
        'title.required' => 'A title is required',
        'body.required'  => 'A message is required',
    ];
}

https://laravel.com/docs/5.3/validation#customizing-the-error-messages

答案 2 :(得分:0)

我使用此解决方案来翻译字段标签:

...

/**
 * Get the validation rules that apply to the request.
 *
 * @return array
 */
public function rules()
{
    return [
       'title' => 'required|min:5',
       'content' =>'required',
       'user_id' => 'required|numeric',
       'category_id' => 'required|numeric',
       'published_at' => 'required|date'
    ];
}

/**
 * Get the validation attributes that apply to the request.
 *
 * @return array
 */
public function attributes()
{
    return [
        'title' => __('app.title'),
        'content' => __('app.content'),
        'user_id' => __('app.user'),
        'category_id' => __('app.category'),
        'published_at' => __('app.published_at')
    ];
}