2015-09-27 63 views
0

當我設法使用Laravel驗證模塊在我的項目是這樣的:沒有錯誤消息文本使用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) 

「validation.required」

我不知道爲什麼模塊沒有得到德錯誤錯誤字符串。 Im相當肯定的模塊工作確定,因爲如果我嘗試定義一些自定義字符串是這樣的:

$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) 

我缺少什麼?

回答

0

也許翻譯員需要語言環境'en_US'