如何在laravel 5中向服务提供者的错误消息添加错误

时间:2015-03-12 14:04:48

标签: php laravel-5

我在像这样的服务提供商中添加了自定义验证规则

namespace App\Providers;

use Illuminate\Support\ServiceProvider;

class ValidatorServiceProvider extends ServiceProvider {

    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot() {
        $this->app['validator']->extend('chk', function ($attribute, $value, $parameters) {
            if(some_check){
                return true;
            }else{
                //add error message
            }
        });
    }

    public function register() {

    }

}

但我希望它添加错误消息而不是返回false,该怎么做?

1 个答案:

答案 0 :(得分:0)

extend()可以使用3个参数,第一个是验证名称,第二个是包含要验证的所有数据的函数,第三个是允许错误消息的函数,所以你可以通过以下方式完成:

$this->app['validator']->extend('chk', function ($attribute, $value, $parameters) {
    if (some_check) {
        return true;
    } else {
        return false;
    }
 }, ':attribute field error.');

验证需要返回布尔值,true将传递验证,false将触发错误消息。 :attribute是字段名称的占位符。您也可以将自定义错误消息添加到resources/lang/en/validation.php文件中。因此,不仅要将它们保存在一个地方,如果您的应用程序有多种语言选项,它也会对您有所帮助。