Php 拉威尔4号;withInput();=未定义的偏移量:0

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')-

我已经在这里和Laravel论坛进行了长时间的搜索,但是我找不到这个问题的答案
->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);