Php 拉威尔4号;withInput();=未定义的偏移量:0
我已经在这里和Laravel论坛进行了长时间的搜索,但是我找不到这个问题的答案Php 拉威尔4号;withInput();=未定义的偏移量:0,php,laravel,Php,Laravel,我已经在这里和Laravel论坛进行了长时间的搜索,但是我找不到这个问题的答案->withInput()产生一个未定义的偏移量:0 上下文: 控制器 public function getJobs() { $position_options = DB::table('jposition')->lists('friendly','id'); $category_options = DB::table('jcategory')-
->withInput()
产生一个未定义的偏移量:0
上下文:
控制器
public function getJobs()
{
$position_options = DB::table('jposition')->lists('friendly','id');
$category_options = DB::table('jcategory')->lists('friendly','id');
$location_options = DB::table('jlocation')->lists('friendly','id');
$result = $query->get();
return View::make('jobsearch.search', array('position_options' => $position_options, 'category_options' => $category_options, 'location_options' => $location_options))->withInput();
}
public function getSearch()
{
$position_options = DB::table('jposition')->lists('friendly','id');
$category_options = DB::table('jcategory')->lists('friendly','id');
$location_options = DB::table('jlocation')->lists('friendly','id');
return View::make('jobsearch.search', array('position_options' => $position_options, 'category_options' => $category_options, 'location_options' => $location_options));
}
public function getJobs()
{
$position_options = DB::table('jposition')->lists('friendly','id');
$category_options = DB::table('jcategory')->lists('friendly','id');
$location_options = DB::table('jlocation')->lists('friendly','id');
return View::make('jobsearch.search', array('position_options' => $position_options, 'category_options' => $category_options, 'location_options' => $location_options))->withInput();
}
看法
withInput()
的工作方式与您想象的不同。这只是一个重定向功能,而不是视图
在视图中使用Input($data)调用,效果完全不同;它将以下键值对传递给您的视图:'input'=>$data
(您会收到一个错误,因为您没有向函数传递任何数据)
要获得想要的效果,请在创建视图之前调用Input::flash()
,而不是调用withInput()
。这应该允许您在视图中使用Input::old()
函数来访问数据
或者,您可以简单地将Input::all()
传递到视图,并在视图中使用Input[]
数组:
View::make(...)->withInput(Input::all());
翻译成
View::make(...)->with('input', Input::all());
至于你的评论,我建议你这样做:
$position_options = DB::table('jposition')->lists('friendly','id');
$category_options = DB::table('jcategory')->lists('friendly','id');
$location_options = DB::table('jlocation')->lists('friendly','id');
$category = Input::get('category');
$location = Input::get('location');
$type = Input:: get('type');
$data = compact('position_options', 'category_options', 'location_options', 'category', 'type', 'location');
return View::make('jobsearch.search', $data);
我本人对laravel很陌生,但是当你第一次加载视图时,你不会有任何输入,是吗?TonyArra你的回答帮助解决了这个问题,只是想澄清一下。我可以用('result',$result)添加->吗在->withInput(Input::all())之后的code>代码>没有副作用?或者它需要以某种方式重新构造吗?@RohanPeters我相信你可以,但我建议你构建一个$data数组,其中包含你所需要的一切,这样你就可以像这样调用你的视图return view::make(jobsearch.search,$data)
$position_options = DB::table('jposition')->lists('friendly','id');
$category_options = DB::table('jcategory')->lists('friendly','id');
$location_options = DB::table('jlocation')->lists('friendly','id');
$category = Input::get('category');
$location = Input::get('location');
$type = Input:: get('type');
$data = compact('position_options', 'category_options', 'location_options', 'category', 'type', 'location');
return View::make('jobsearch.search', $data);