Laravel 4, -> withInput (); = Неопределенное смещение: 0

У меня был длительный поиск и здесь, и на форумах Laravel, но я не могу найти ответ на эту проблему. ->withInput() up Undefined offset: 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(); } 

Посмотреть

 <form action="{{ action('JobsearchController@getJobs') }}" method="post"> <div class="row"> <div class="large-8 columns"> <input type="text" name="realm" placeholder="Keywords/Skills" /> </div> <div class="large-4 columns"> {{ Form::select('category', $category_options , Input::old('category')) }} </div> </div> <div class="row"> <div class="large-4 columns"> {{ Form::select('location', $location_options , Input::old('location')) }} </div> <div class="large-4 columns"> {{ Form::select('type', $position_options , Input::old('type')) }} </div> <div class="large-4 columns"> <input type="submit" value="Search" style="width:100%; padding-top: .5rem; padding-bottom: .5rem;" class="button border-btn" /> </div> </div> </form> 

Теперь, согласно документации, не должно быть проблем, и страница загружается штрафом, если ->withInput(); удален.

Конечная цель – опрокинуть ответ, полученный мной из моего предыдущего вопроса. Нежелательный результат из db: raw и иметь одну страницу, которая загружает форму «Фильтрация» и отображает соответствующие результаты при перезагрузке и запоминает выбор в форме.

Заранее спасибо.

UPDATE: после комментария я обновил контроллер и маршруты, все тот же результат:

routes.php

Route::get('jobs/search', 'JobsearchController@getSearch');

&

Route::post('jobs/search', 'JobsearchController@getJobs');

контроллер

  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() не работает так, как вы думаете. Это только функция перенаправления, а не вид.

Вызов withInput($data) на View имеет совершенно другой эффект; он передает следующую пару ключевых значений вашему представлению: '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);