2017-10-03 4 views
-2

나는 laravel에서 새로운 오전 내 데이터베이스에서 검색하고 결과에 대한보기를 표시합니다 내보기에서 검색 막대를 만들고 싶습니다. 내 양식의 행동이 될 양식을 만들면 나는 혼란을 겪습니다. 친절하게 제 양식에 어떤 행동을해야하는지 말해주십시오.검색 막대에서 laravel

+0

검색 막대의 형태로, 또는 동적보기의 양식? – Andrew

+0

검색 바의 @Andrew 형식 –

답변

0

다음은 'movie'를 모델로 사용한 기본 예입니다. 라이브 검색에서 영화 포스터 이미지를 사용하지만 아이디어를 얻을 수 있습니다. 기본적으로 검색 결과는 html 섹션을 대체합니다.이 섹션은 테이블 행이거나이 예의 경우 부트 스트랩 열일 수 있습니다.

경로 파일 (web.php) :

Route::get('movies/search', '[email protected]')->name('movies.search'); 
Route::get('search-results', '[email protected]_results'); 

MovieController.php

/** 
    * Search. 
    */ 
    public function search() 
    { 
     $movies = Movie::orderBy('name', 'asc')->get(); 
     return view('movies.search')->with('movies', $movies); 
    } 
    /** 
    * Live search results. 
    */ 
    public function search_results(Request $request) 
    { 
     if ($request->ajax()) 
     { 
      $movies = Movie::with('cinemas')->where('name', 'LIKE', '%' . $request->results . '%') 
       ->orWhereHas('cinemas', function ($q) use ($request) 
       { 
        $q->where('name', 'LIKE', '%' . $request->results . '%'); 
       })->orderBy('name', 'asc') 
       ->get(); 
      if ($movies) 
       $results = ''; 
      foreach ($movies as $movie) 
      { 
       $results .= '<div class="col-md-2"> 
           <div class="thumbnail" data-toggle="tooltip" data-placement="top" title="" 
            data-original-title="' . $movie->name . '"><a href="'.route('movies.show', ['id' => $movie->id]).'"><img src="' . url($movie->poster) . '" alt="' . $movie->name . '" 
              style="width:100%"/></a></div></div>'; 
      } 
      return Response($results); 
     } 
    } 

보기 (search.blade.php)

@extends('layouts.app') 

@section('title', 'Search') 

@section('content') 

    <div class="container"> 
     <div class="bs-docs-section"> 
      <div class="row"> 
       <div class="col-lg-12"> 
        <div class="page-header"> 
         <h1 id="navs">Search</h1> 
        </div> 
       </div> 
      </div> 
     </div> 
    </div> 

    <div class="container"> 
     <div class="bs-docs-section"> 
      <div class="row"> 
       <div class="col-lg-10 col-lg-offset-1"> 
        <div class="form-group"> 
         {{ Form::text('search', null, array('autofocus', 'class'=>'form-control', 'id'=>'search', 'name'=>'search','placeholder'=>'Search by movie title or cinema name')) }} 
        </div> 
       </div> 
      </div> 
     </div> 
    </div> 

    <div class="container"> 
     <div class="bs-docs-section"> 
      <div class="row"> 
       <div class="col-lg-12"> 
        <div class="bs-component"> 
         @foreach ($movies as $movie) 
          <div class="col-md-2"> 
           <div class="thumbnail" data-toggle="tooltip" data-placement="top" title="" 
            data-original-title="{{ $movie->name }}"> 
            <a href="{{ url('/movies') }}/{{ $movie->id }}"> 
             <img src="{{ url($movie->poster) }}" alt="{{ $movie->name }}" 
              style="width:100%"/> 
            </a> 
           </div> 
          </div> 
         @endforeach 
        </div> 
       </div> 
      </div> 
     </div> 
    </div> 
@endsection 

@section('scripts') 
<script type="text/javascript"> 
    $(document).ready(function(){ 
     $("#search").trigger('keyup'); 
    }); 
    $('#search').on('keyup', function() { 
     $value = $(this).val(); 
     $.ajax({ 
      type : 'get', 
      url : '{{ URL::to('/search-results') }}', 
      data : {'results': $value}, 
      success: function (data) { 
       if (data) { 
        $('.bs-component').html(data); 
       } else { 
        $('.bs-component').html('<div class="col-md-10 col-md-offset-1">There are no movie titles or cinema names matching your search criteria.</div'); 
       } 
      } 
     }); 
    }); 
</script> 
@endsection