【问题标题】:Laravel 4 won't show default error messagesLaravel 4 不会显示默认错误消息
【发布时间】:2014-04-28 20:03:12
【问题描述】:

我是 Laravel 的新手,我一直在使用这个 book。它说它有一些默认的验证错误消息,例如:

  • 用户名字段是必需的。
  • 电子邮件字段为必填项。
  • 密码字段为必填项。

由于某种原因,此消息不会出现,而是显示如下:

  • validation.email
  • validation.min.string
  • validation.confirmed

为什么不显示默认错误消息? (我知道我可以制作一些自定义的)

这是我的控制器:

public function sign_up()
{

    // Fetch all request data.
    $user = new User;
    $data = Input::all();
    $validator = $user->isUserValid($data);

    if ($validator->passes()) {
        $user->email    = $data['email'];
        $user->password = $data['password'];
        $user->save();
        echo('Data was saved.');
    }else{
        // Collect the validation error messages object.
        return Redirect::to('/sign-up')->withInput()->withErrors($validator);
    }

}

使用模型中使用的这种方法:

  public function isUserValid($data){

    // Build the validation constraint set.
    $rules = array(
        'email'    => 'email|required|unique:users',
        'password' => 'required|min:5|confirmed'
    );

    // Create a new validator instance.
    return $validator = Validator::make($data, $rules);    

}

【问题讨论】:

  • 您能给我们看看您的看法吗?

标签: laravel laravel-4


【解决方案1】:

如果你的错误消息包含validation.email,验证本地化的关键,那么你的laravel应用程序没有加载或无权访问本地化文件夹。

检查您是否尚未删除 app/lang/en,并且应该有一个名为 validation.php 的文件,其中包含所有默认验证响应。

您也可以set the messages on the fly,但使用本地化文件validation.php 会更好。无论如何,你会走这条路:

$messages = array(
    'required' => 'The :attribute field is required.',
);

$validator = Validator::make($input, $rules, $messages);

【讨论】:

  • 我刚刚检查了validation.php 在app/lang/en 内,它包含所有消息。我记得我更改了应用程序的语言,只需将其放回 app/config/app.php 内的英语(en)即可再次运行。谢谢!
猜你喜欢
  • 2013-06-28
  • 1970-01-01
  • 1970-01-01
  • 2018-12-02
  • 1970-01-01
  • 2018-03-25
  • 2016-09-29
  • 2016-09-25
  • 2019-09-22
相关资源
最近更新 更多