본문 바로가기
MySql

MySQL Laravel 4의 페이지 매김은 한 페이지에서 작동합니다. 하지만 다른 사람을 위해 일하지 않습니다

by 베이스 공부 2020. 12. 29.
반응형

GitHub에서 sentry를 사용하여 laravel 용 스타터 키트를 다운로드했습니다.

지금까지 모든 것이 괜찮습니다. 블로그 페이지에 페이지 매김이 있습니다. 동일한 pagination (x) 값을 변경하여 원하는대로 페이지 당 항목 수를 변경할 수 있습니다.

이제 문제는 검색된 키워드에 대한 결과를 표시하는 "검색"이라는 새 페이지를 직접 만들었습니다.

여기에 동일한 페이지 매김을 추가했는데, 언급 한대로 페이지 당 항목 수, 페이지 번호, 화살표가 표시됩니다. 모든 것이 완벽하지만 2 페이지를 클릭하면 빈 페이지가 표시됩니다. 빈 페이지의 페이지 소스도 비어 있습니다. URL은 2 페이지에 적합합니다. 다음과 같이 올바르게 생성됩니다.

sitename.dev/search?page=2

내가 잘못 가고있는 곳을 안내 해주세요. 블로그 페이지 페이지 매김은 여전히 ​​잘 작동합니다. 새로 생성 된 SEARCH 페이지 페이지 매김에서만 문제가 발생합니다.

이것은 내 컨트롤러입니다

public function postSearch()
{
    $searchString = Input::get('searchInput');

    $posts = Post::where('title', 'LIKE', '%' . $searchString . '%')->orderBy('created_at', 'DESC')->paginate(4);

    if($searchString){

    return View::make('frontend/search', compact('posts'))->with('success', 'Account successfully updated')->with('posts', $posts);
    }
    else{
        return Redirect::route('home')->with('error', 'Please enter Search Term');
    }

}

이것은 나의 경로

Route::any('/search', 'BlogController@postSearch');

 

해결 방법

 

가장 먼저

return View::make('frontend/search', compact('posts'))->with('success', 'Account successfully updated')->with('posts', $posts);

compact 를 수행 할 때 뷰에서 $ posts 로 사용할 $ posts var를 이미 포함하고 있습니다. with ( 'posts', $ posts) 사용. 그래서이 마지막은 제거 할 수 있습니다. compact 를 사용하여 더 많은 변수를로드하려면 변수 이름을 쉼표로 구분하십시오.

페이지 매기기 링크를 클릭하거나 page = 2 를 호출하면 검색 POST 작업에서 항목에 페이지를 매 깁니다. postSearch 메소드를 실행하지 않는 경우 지금 POST 요청을 수행하지 않기 때문에 getSearch 를 호출했을 가능성이 있습니다.


 

참조 페이지 https://stackoverflow.com/questions/17451963

 

 

반응형

댓글