Laravel自定义错误消息未正确返回

时间:2016-06-08 12:15:30

标签: laravel laravel-5.2

我使用像这样的服务提供商

创建了一个新的自定义规则
public function boot()
{
    $this->app['validator']->extend('googleUrl', function($attribute, $value, $parameters, $messages)
    {
        $url = $value;
        $google_haystack = array('https://www.google.com', 'https://google.com');

            // Check the user's input against each array value

            foreach ($google_haystack as $google_haystack)
            {
                if (strpos($url, $google_haystack) !== FALSE)
                {
                    return TRUE;
                }
                return FALSE;
            }   
    });
}

该规则可以正常工作,但是当显示错误消息时,它只会显示为" validation.google_url"。所以,在我的validation.php文件中我定义了它,但它仍然只返回上一条错误消息,而不是我的自定义消息。

/*
|--------------------------------------------------------------------------
| Custom Validation Language Lines
|--------------------------------------------------------------------------
|
| Here you may specify custom validation messages for attributes using the
| convention "attribute.rule" to name the lines. This makes it quick to
| specify a specific custom language line for a given attribute rule.
|
*/

'custom' => [
    'attribute-name' => [
        'rule-name' => 'custom-message',
    ],
    'validation.google_url' => [
        'googleUrl' => 'You must enter a valid Google URL.',
    ],
],

1 个答案:

答案 0 :(得分:1)

消息应放在数组的第一级,而不是自定义数组中,该数组仅用于特定于属性的错误消息。