Validation 验证后在控制器中获取表单输入
我是拉威尔世界的新成员,我有一个问题到目前为止我还不能解决 我的问题是: 验证失败后,如何在控制器的Validation 验证后在控制器中获取表单输入,validation,laravel,laravel-5,Validation,Laravel,Laravel 5,我是拉威尔世界的新成员,我有一个问题到目前为止我还不能解决 我的问题是: 验证失败后,如何在控制器的create()函数中访问提交的值 以下是我所拥有的: PostsController,在routes.php中定义为资源 在控制器中,我有常用的方法create()和store()等 下面是一些代码: //PostsController public function create() { //Here I need to get the inputs return view('
create()
函数中访问提交的值
以下是我所拥有的:
create()
和store()
等//PostsController
public function create()
{
//Here I need to get the inputs
return view('posts.create');
}
public function store(Requests\PostsRequest $request)
{
//store actions
}
我创建了PostsRequest类,它有一些规则,如:
public function rules(){
$rules = [
'category_id'=>'required',
'name'=>'required|min:3',
'description'=>'required'
];
return $rules;
}
如果一切正常,则条目已存储到数据库中,但当验证失败时,它将加载带有一些验证消息的create()
。
我需要在表单中加载所选类别的祖先,这应该通过知道category\u id
元素的提交值来实现
到目前为止,我所尝试的:
public function create(Requests\PostsRequest $request){...}
但它进入了无限循环。我理解为什么,因为控制器的资源定义和它“认为”它是存储方法Input::all()
,但它是空的public function create(){
$request = new \Request();
//print $request
}
但是它不起作用,我也不认为这是正确的方法因此,如果您知道如何在控制器中获取这些值,我们将不胜感激。您应该能够使用Input::old()获取数据 在你看来,你可以这样做
<input type="text" name="name" value="{{ old('name') }}" />
如果已发送,则将从name中获得值
另请参见最近的问题/答案;
如果使用
{!!Form::open()!!}
(或Form::model
),将再次加载所有内容(重定向回后)。Laravel自动捕获“Input::old”值
来源:FormBuilder.php(lighting/html包-5.0版)
如果您不想使用Illumb/html,只需在value属性处添加:
Input::old('input_name')
如果你想得到请求。只需添加到create方法中
public function create(Request $request){
$data = $request->all(); //or whatever you want..
}
我的问题不是在字段中显示值,而是在控制器中以某种方式获取值。我有很多嵌套的类别,我需要将它们显示为每个级别的多个选择。当用户从级别3中选择类别,并且验证失败时,我需要再加载两个级别以显示当前选择,顺便说一下,当前选择是用ajax加载的(例如,选择cat1,(加载新选择),然后选择cat1.2,(加载新选择),然后选择。请参阅我对其他答案的评论
public function create(Request $request){
$data = $request->all(); //or whatever you want..
}