Php Laravel会话数组值

Php Laravel会话数组值,php,laravel,laravel-3,Php,Laravel,Laravel 3,我刚开始测试拉威尔。我正在使用带有一些字段的表单,并尝试使用Laravel的内置验证器类来验证输入 $input = Input::all(); $rules = array( 'fname' => 'required|max:100', 'lname' => 'required|max:100', 'email' => 'required|email', ); $validation = Validato

我刚开始测试拉威尔。我正在使用带有一些字段的表单,并尝试使用Laravel的内置验证器类来验证输入

$input = Input::all();
$rules = array(
        'fname' => 'required|max:100',
        'lname' => 'required|max:100',
        'email' => 'required|email',
            );
$validation = Validator::make($input, $rules);
if ($validation->fails()){
            return Redirect::to('inputform')
                            ->with('input_errors', $validation->errors);
            }
一切进展顺利,验证检查工作正常。当验证失败时,我将错误放入名为input_errors的会话变量中,并将其传递给视图。我的问题是,我似乎无法显示错误。我使用刀片模板引擎尝试了foreach循环,如下所示:

@foreach (Session::get('input_errors') as $message)
    {{ What Should I put here? }}
@endforeach
如何显示作为数组返回的错误。我尝试将其引用为$message[0][0],但没有成功

谢谢


编辑:抱歉,忘了提到我使用的是Laravel 3

获取错误的正确语法是

$messages= $validation->messages();
不幸的是,单凭这一点并不能给你回信。它将返回一个MessageBag实例。这允许您提取您想要的任何特定消息或所有消息

如果你想得到所有的信息,现在你可以做

$errors = $messages->all();
这将返回一个数组,您可以在视图中循环以显示错误。还有一些方法可以获取特定字段的错误,例如

$firstNameError = $messages->first('fname');

我还建议在向视图发送错误消息时,使用

->with_errors($validation);
这将把错误闪存到会话中,并自动假定您将它们作为$errors变量发送。然后,您可以使用在视图中显示错误

{{ $errors->first('fname') }}  // Blade approach
<?php echo $errors->first('email'); ?> // Non-blade approach
这样,您就不必在尝试回显变量之前向视图中添加逻辑来确定变量是否存在


获取错误的正确语法是

$messages= $validation->messages();
不幸的是,单凭这一点并不能给你回信。它将返回一个MessageBag实例。这允许您提取您想要的任何特定消息或所有消息

如果你想得到所有的信息,现在你可以做

$errors = $messages->all();
这将返回一个数组,您可以在视图中循环以显示错误。还有一些方法可以获取特定字段的错误,例如

$firstNameError = $messages->first('fname');

我还建议在向视图发送错误消息时,使用

->with_errors($validation);
这将把错误闪存到会话中,并自动假定您将它们作为$errors变量发送。然后,您可以使用在视图中显示错误

{{ $errors->first('fname') }}  // Blade approach
<?php echo $errors->first('email'); ?> // Non-blade approach
这样,您就不必在尝试回显变量之前向视图中添加逻辑来确定变量是否存在


我在使用withErrors时收到一条错误消息,说它未定义function@rahules应该有用。你现在使用的实际代码是什么?你的Laravel是最新的吗?它成功了。我不得不用错误来代替威瑟罗。实际上,我使用的是laravel 3.2.14。意外地将laravel-4作为标签。更改了它并更新了帖子。好的,我更改了答案以匹配对您有用的内容,这样人们就不会对Laravel 3/4中的snake_案vs camelCase案感到困惑。谢谢。不过有点疑问。blade语句后面的分号是标准的吗?或者这只是偏好的问题?我在使用withErrors时收到一条错误消息,说它未定义function@rahules应该有用。你现在使用的实际代码是什么?你的Laravel是最新的吗?它成功了。我不得不用错误来代替威瑟罗。实际上,我使用的是laravel 3.2.14。意外地将laravel-4作为标签。更改了它并更新了帖子。好的,我更改了答案以匹配对您有用的内容,这样人们就不会对Laravel 3/4中的snake_案vs camelCase案感到困惑。谢谢。不过有点疑问。blade语句后面的分号是标准的吗?还是只是偏好的问题?