2016-11-03 6 views
1

Laravel 5.2를 사용 중입니다. 내가 링크 {{URL : 경로를 ('자동')}} 여기에 직접 json view로 말한다 탐색 할 때 여기 laravel auto complete 텍스트보기

내 코드

//for header 
     <head> 
     <script type="text/javascript" src="{{ URL::asset('src/js/jquery-1.10.2.js') }}"></script> 
      <script type="text/javascript" src="{{ URL::asset('src/js/jquery-ui.js') }}"></script> 
      <link rel="stylesheet" href="{{ URL::to('src/css/jquery-ui.css') }}"> 
     </head> 

//body 

<div class="col-sm-6 feature" > 
     <div class="ui-widget"> 
      <label for="skills">Skills: </label> 
      <input type="text" class="search_keyword" id="skills" placeholder="Search.." name="skills" /> 
     </div> 
     <script> 
      $(function() { 
       $("#skills").autocomplete({ 
        source: "{{URL::route('auto')}}" 
        //source: ["a","b"] 
       }); 
      }); 
     </script> 
    </div><!-- end feature --> 

//route 

Route::get('/', function() { 
    return view('welcome'); 
}); 

Route::get('/auto', [ 
    'uses' => '[email protected]', 
    'as' => 'auto' 
    ]); 


//controller 

class SearchController extends Controller 
{ 

public function AutoSug() 
    { 
     $auto_s = DB::table('skills') 
       ->pluck('skill'); 

     return response()->json($auto_s); 

    } 

} 

지금 문제가있다

여기에서 볼 수있는대로 문제가되지 않습니다. main view

하지만 "{{URL : 경로 ('자동')}} '코드를 소스 : ["a ","b "]로 변경하면 제대로 출력됩니다. 그렇다면 문제는 어디에 있을까요?

답변

1

그래서 해결책이 있습니다.

namespace App\Http\Controllers; 

    use Illuminate\Http\Request; 
    use App\Http\Controllers\Controller; 
    use Illuminate\Support\Facades\Input; 
    use App\Product; 
    use DB; 

    class SearchController extends Controller 
    { 

    public function autoComplete() 
     { 

      $term = Input::get('term'); 

      $results = array(); 

      $queries = DB::table('skills') 
      ->where('skill', 'LIKE', '%'.$term.'%') 
      ->take(9)->get(); 

     foreach ($queries as $query) 
     { 
      $results[] = [ 'id' => $query->ID, 'value' => $query->skill]; 
     } 


     return response()->json($results); 
     } 

    } 

문제는 변수 얻고 쿼리 빌더는 모든 반환 된 것이 null 값을 얻고 있었다 컨트롤러에 있었던 다음과 같이 컨트롤러를 들어

$(function() 
     { 
      $("#q").autocomplete({ 
      source: "{{URL('auto')}}", 
      minLength: 1, 
      select: function(event, ui) { 
      $("#q").val(ui.item.value); 
      }  
      }); 
     }); 

추가하십시오 다음과 같이 자바 스크립트를 적어주세요 데이터베이스에서 결과. 다음과 같이 라이브러리 및 연관 변수를 추가하고 문제점을 해결했습니다.

use Illuminate\Support\Facades\Input; 
$term = Input::get('term'); 

다른 사람들에게 동일한 문제가 도움이되기를 바랍니다.

다음 링크가 도움이되기를 바랍니다.

  1. https://gist.github.com/imranismail/10200241?signup=true

  2. https://gist.github.com/manoj-nandakumar/11beb90916dfbdc6af7a

관련 문제