2015-04-21 5 views
0

Я пытаюсь, чтобы пользователь помещал любое количество чисел в строку поиска, и эти числа соответствуют строкам в моей базе данных, которые включают эти числа и тянут всю строку. Мне сейчас трудно работать, чтобы работать. Я пытаюсь заставить его работать с четырьмя числами, и я полагаю, что это будет легче подвига, а также даст мне хорошее представление о том, как справиться с остальными. На данный момент я не получаю никаких ошибок, но он не отображает информацию, когда я помещаю 4 числа, которые, как я знаю, должны соответствовать существующей строке. База данных, которую я использую, - это mysql. Это то, что у меня в контроллере:запрос поиск laravel 5

public function executeSearch() 
{ 


    $search = Input::get('search'); 
    session_start(); 
    $_SESSION['search'] = $search; 
    $nsn_list_all = nsn::all(); 
    $query = \App\nsn::where('nsn_number', $search)->get(); 



    return View('Search_views.searchresults',compact('search', 'nsn_list_all', 'query')); 
} 

Это мое мнение:

@extends('layout.master') 
@section('content') 
<div class="main"> 
<br/> 
    <h2>Search Results for {{$search}}:</h2> 
    <br/> 
    <table id="contact_table"> 
     <thead> 
     <tr> 
      <th>National Stock Number</th> 
      <th>Part Number</th> 
      <th>Description</th> 
     </tr> 
     </thead> 
     <tbody> 
      <tr> 
       @foreach($query as $search_result) 
        @if($search_result->nsn_number == $search && 
         $search_result->nsn_number[1] == $search[1] && 
         $search_result->nsn_number[2] == $search[2] && 
         $search_result->nsn_number[3] == $search[3]) 

         <td>{{$search_result->nsn_number}}</td> 
         <td>{{$search_result->pn_name}}</td> 
         <td></td> 
        @endif 
       @endforeach 
      </tr> 
     </tbody> 
    </table> 
</div> 
@endsection 

На стороне записки без if заявления foreach оператора работает для нахождения точного совпадения, хотя.

+0

Почему вы используете 'session_start' /' $ _SESSION' вместо встроенного класса Session Larvel? – ceejayoz

+0

уже выяснил, как это сделать, и это было всего лишь исчерпывающим все варианты, и это фактически не влияет на мой код. – Vantheman6

ответ

0

Я понял. Это найдет все соответствующие числа в строке.

В контроллере:

if ($search) 
    { 
     $nsn_query = DB::table('nsns')->where('nsn_number', 'LIKE', "%$search%")->get(); 
    } 

The View:

@foreach($nsn_query as $search_result) 
     <td>{{$search_result->nsn_number}}</td> 
     <td>{{$search_result->pn_name}}</td> 
     <td></td> 
@endforeach 

FYI Множественные результаты переедет и не будет разрыв строки, собирается работать на той части, но если кто-то я понял, нужна помощь в выяснении части запроса.

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