2016-05-31 2 views
0

laravel의 임의의 레코드를 통해 페이지 매김을하는 방법은 무엇입니까? 예를 들어 :Laravel - Paginate 임의의 레코드

$products = Product::all()->orderBy(DB::raw('RAND()')); 
$products->paginate(4); 
$products->setPath('products'); 

의지 이상으로 인해 임의의 순서로, 중복 레코드에 끝납니다. 새 페이지 요청이있을 때 같은/고정 된 임의 레코드 세트를 필터링해야하므로 $ products 개체를 유지할 수 있습니까?

+0

알 리드가 시도한 것과 작동하지 않는 것을 알려주십시오. –

+0

@AlexandreCartapanis - 페이지 네이션은 중복 된 레코드를 제공합니다. 위 코드를 사용했습니다. – dang

답변

5

mysql의 documentation에 RAND() 기능을 검색하면 "시드"를 사용할 수 있습니다.

시드를 사용하면 항상 동일한 결과가 무작위로 추출됩니다.

예 :

$products = Product 

    ::all() 

    ->orderBy(DB::raw('RAND(1234)')) 

    ->paginate(4); 

당신은 당신의 자신의 씨앗을 생성하고 세션이나 기억하는 뭔가에 저장할 수 있습니다.

관련 문제