ric*_*een 6 validation controller view laravel-4
正如您所料,当验证失败时,我创建了一个重定向.
return Redirect::to('search')->withErrors($v->messages())
Run Code Online (Sandbox Code Playgroud)
我可以在视图中访问它而没有问题,但我想做一些不同的事情.我有一个ErrorPartial.blade.php,我希望将其传递给我的搜索视图.
return View::make('search.searchForm')
->with('title', 'Search Page')
->with('components', Subject::select('Component')->distinct()->get())
->with('measurementRow',$measurementRow)
->with('races', Race::parseRaceTable())
->with('errorPartial', View::make('errorPartial')
->with('errors',$v->messages())
->render())
;
Run Code Online (Sandbox Code Playgroud)
问题是我无法在此控制器功能中访问$ v.我可以访问将要传递给视图的错误吗?我试过这个:
return Redirect::to('search')->withErrors($v->messages())
->with('v', $v);
Run Code Online (Sandbox Code Playgroud)
但是我得到了这个错误.
Serialization of 'Closure' is not allowed
Run Code Online (Sandbox Code Playgroud)
我可以在我的搜索视图中创建部分视图,但我想知道它们是否是这样做的一种方式.如果有人知道哪个更有效率或GPP那么我也不介意知道这一点.
谢谢
回答问题将其作为一个悬而未决的问题关闭.
Laravel将错误存储在Session中,可以像这样访问:
$errors = Session::get('errors');
Run Code Online (Sandbox Code Playgroud)
Laravel将错误存储在Session中。
并且Blade中可用的所有功能都来自ViewErrorBag类。
use Illuminate\Support\ViewErrorBag;
...
$errors = session()->get('errors', app(ViewErrorBag::class));
Run Code Online (Sandbox Code Playgroud)
首选此方法,因为如果会话中没有错误,它将返回空错误包。这意味着您可以调用$errors->any()此对象而不会期望出现错误提示
在null上调用成员函数any()
您始终可以按照以下建议在源代码中找到实现
该
$errors变量由Illuminate\View\Middleware\ShareErrorsFromSession中间件绑定到视图, 中间件由web中间件组提供。应用此中间件时,$errors变量将始终在您的视图中可用,从而使您可以方便地假定$errors变量始终是定义的并且可以安全使用。
| 归档时间: |
|
| 查看次数: |
5075 次 |
| 最近记录: |