2014-10-03 3 views
1

Я делаю простую поисковую систему, в которой, если выбранный список из выпадающего списка будет соответствовать тому, который находится внутри столбца «destinationto» из базы данных, тогда он будет извлекать все элементы внутри этой строки. Но когда я нажимаю кнопку поиска, он не будет возвращать какой-либо элемент из базы данных. Это даст мне пустой массив.Пустые результаты поиска Laravel 4

object(Illuminate\Database\Eloquent\Collection)[141] 
    protected 'items' => 
    array (size=0) 
     empty 

Что я сделал не так?

Вот фрагменты

OnewayflightControllers.php:

public function onewayflightresults() 
{ 
    $destinationto = Input::get('destinationto'); 
    $results = Oneways::where('destinationto','=',$destinationto)->get(); 
    var_dump($results); 
} 
public function onewayflight() 
{ 
    $onewaysfrom = DB::table('oneways')->distinct()->lists('destinationfrom'); 
    $onewaysto = DB::table('oneways')->distinct()->lists('destinationto'); 
    return View::make('content.onewayflight')->with(['destinationfrom'=>$onewaysfrom,'destinationto'=>$onewaysto]); 
} 

onewayflight.blade.php:

{{ Form::label('destinationto','To: ') }} 
{{ Form::select('destinationto', $destinationto)}} 
+1

Кажется, в тот момент, когда у вас нет строк, которые имеют в 'значение destinationto' вы заполните форму. В противном случае покажите нам, что вы заполняете, что такое 'var_dump'' $ destinationto' и какие данные у вас есть в вашей таблице. –

+0

@ MarcinNabiałek Я редактировал свой вопрос sir. Я пробовал var_dump на все, только $ destinationto не дает мне никаких результатов. Что может быть ошибкой, которую я совершил? – staphhelpme

ответ

1

Это только предположение, но вы должны убедиться, что вы имеют только один элемент формы с именем destinationto

Если у вас есть в форме, например,

{{ Form::label('destinationto','From: ') }} 
{{ Form::select('destinationto', $destinationfrom)}} 

{{ Form::label('destinationto','To: ') }} 
{{ Form::select('destinationto', $destinationto)}} 

Если вы считаете, что это нормально, вы должны добавить var_dump($destinationto); в вашу функцию, чтобы убедиться, что значение является то, что вы ожидаете

EDIT

Я думал, что select будет использовать значения как ключи, но это не так, вы должны, вероятно, сделать что-то вроде этого:

$onewaysfrom = DB::table('oneways')->distinct()->lists('destinationfrom','destinationfrom'); 
$onewaysto = DB::table('oneways')->distinct()->lists('destinationto','destinationto'); 

и нет:

$onewaysfrom = DB::table('oneways')->distinct()->lists('destinationfrom'); 
$onewaysto = DB::table('oneways')->distinct()->lists('destinationto'); 
+0

У меня есть двойная проверка моих форм, и на ней есть только один элемент с именем destinationto. Пробовал менять имена, которые совершенно разные, и var_dump, но все равно ничего не происходит. Он возвращает 'destinationfrom' => string '0' (length = 1) 'destinationto' => string '0' (length = 1) – staphhelpme

+1

@staphhelpme Я отредактировал свой ответ –

+0

YESS! Еще раз, СПАСИБО, так много сэр! Теперь он работает! – staphhelpme

Смежные вопросы