2016-08-11 2 views
0

나는 모든 고객을 표시하는 페이지가 있습니다. 페이지 매김을 사용하고 페이지 당 16 클라이언트 만 표시합니다. 따라서 실시간 검색 기능을 제공했습니다. 보기 내에서 검색 결과 표시

검색이 수행이다

결과에서 선택한 옵션은 기본적으로 다음과 같은 함수를 호출하는 다음

select: function (event, ui) { 
    $.ajax({ 
     url: "/returnClient", 
     type: "GET", 
     datatype: "html", 
     data: { 
      value : ui.item.value 
     }, 
     success: function(data) { 
      $('.container').fadeOut().html(data.html).fadeIn(); 
     } 
    }); 
} 

트리거

public function returnClient(Request $request) 
{ 
    if($request->ajax()){ 
     $selectedClient = $request->input('value'); 
     $client = Client::where('clientName', $selectedClient)->first(); 

     $html = View::make('clients.search', $client)->render(); 
     return Response::json(array('html' => $html)); 
    } 
} 

위의 I 출력 클라이언트 변수, 내가 볼 수있는 경우 이 특정 클라이언트에 대한 모든 세부 정보. 이것은 부분적인 클라이언트에게 전달됩니다. 검색. 내가

{{dd($client)}} 

을 clients.search 내에서, 경우에 나는 정의되지 않은 변수를 가져올 : 클라이언트를. 뷰에서 파싱 된 Object를 가져 오지 않는 이유는 무엇입니까?

많은 감사

+0

여기에서 API를 실제로 사용하고 있는지 확실하지 않습니다. 더 좋은 방법은 뷰 내부에서 HTML을 렌더링 한 다음 API가 엔드 포인트를 호출하고 일부 데이터를 수신하며이 데이터가 Javascript를 통해 뷰 내부에 채워지는 것입니다. 전체 HTML을 전달하면 API에 대한 아이디어가 사라집니다. –

답변

3

문제는 당신이 부적절하게보기로 $client를 전달하는 것입니다. Views documentation은 연관 배열을 통해 데이터를 올바르게 전달하는 방법을 보여줍니다. API docs은 배열이 예상 한 것임을 확인합니다.

대신이 작업을 수행 :

public function returnClient(Request $request) 
{ 
    if($request->ajax()){ 
     $selectedClient = $request->input('value'); 
     $client = Client::where('clientName', $selectedClient)->first(); 

     $html = View::make('clients.search', ['client' => $client])->render(); 
     return Response::json(array('html' => $html)); 
    } 
} 

또한, 습관의 점으로 당신은 dump() 대신 dd()의 사용을 고려할 수 있습니다.

+0

다른 정보 :'dump()'는 뒤에서 부르는'dd()'함수입니다. 따라서 dieing하지 않고 변수 개수를 허용하지 않고 본질적으로 같은 것입니다. – samrap