0

我设法在我的项目中使用 Laravel 验证模块,如下所示:

<?php

namespace Models;

use Illuminate\Database\Eloquent\Model as eModel;
use Illuminate\Validation\Factory as ValidatorFactory;
use Symfony\Component\Translation\Translator;

class AbstractModel extends  eModel {



public function validate($data)
{

    $factory = new ValidatorFactory(new Translator('en'));
    $v = $factory->make($data, $this->rules);

    return $v;
}

public function save() {

    $validator = $this->validate($this->toArray());

    if(!$validator->passes())
    {
        $messages = $validator->messages();
        print_r($messages);
        die();
    }

    parent::save();
}

}

如果我吃午饭,我会得到以下输出:

Illuminate\Support\MessageBag Object ( [messages:protected] => Array ( [email] => Array ( [0] => validation.required ) ) [format:protected] => :message )

“验证。必需”

我不知道为什么模块没有得到默认的错误字符串。我很确定模块工作正常,因为如果我尝试定义一些这样的自定义字符串:

    $message = array(
        'unique' => 'FOO',
        'email' => ':attribute WORNG!!!!!',
        'required' => ':attribute MUST WRITE EMAIL!!!!'
    );
    $factory = new ValidatorFactory(new Translator('en'));
    $v = $factory->make($data, $this->rules, $message);

我得到输出:

Illuminate\Support\MessageBag Object ( [messages:protected] => Array ( [email] => Array ( [0] => email MUST WRITE EMAIL!!!! ) ) [format:protected] => :message )

我错过了什么?

4

1 回答 1

0

也许翻译器需要“en_US”的语言环境

于 2015-09-28T23:41:07.457 回答