2014-07-17 2 views
2

청크의 결과를 반환하고 싶습니다. 문제는 내가 foreach 문으로 반복 할 때, 나는 결과를 표시 에코 결과를 넣어하지만 난 그것을 반환 할 때, 나는 빈 페이지가있다Laravel : Ajax로보기에서 청크 함수의 결과를 얻고 싶습니다.

$tab = array(); 

Product::blabla ->chunk (500, function($results)) 

{ 


    foreach($results as $result) 

    { 
    array_push ($tab,$result); 
    echo $results;// works 
    return $results;// doesn't return anything 

    } 

} 

return $tab; // to be sent to Ajax type get 
+0

'$ results'는 전체 콜렉션 항목입니다. 당신이하고있는 것처럼'$ results'가 아니라'$ tab' 만 리턴하면됩니다. 지금 – martinezjc

답변

3

폐쇄, 그래서 그냥 변수에 추가 변수에 저장 될 수 있습니다 .

$tab = Product::blabla()->chunk (500, function($results)) 
{ 
    // your logic 
    return $results; 
}; 

return $tab 
+0

감사합니다. – user3542482

1

이것은 실제로 작동하지 않으며 단지 true를 반환합니다. 클로저 함수가 참조로 외부 변수를 사용하도록해야합니다 :

$output = []; 

$tab = Product::blabla()->chunk (500, function($results) use (&$output)) 
{ 
    $output = array_combine($output, $results); 
}; 

return $output;