2015-02-10 16 views
5

Tôi gặp một vấn đề lạ khi tôi cố gắng sử dụng Paginator trong Laravel 5. Thông tin về dữ liệu và phân trang đã được chuẩn bị, nhưng khi tôi gọi $ model-> render() trong lưỡi liên kết đến các trang chỉ đơn giản là sai.Các vấn đề liên kết được tạo bởi Laravel 5 Paginator

Dưới đây là một số mã mẫu trong điều khiển:

public function index() 
{ 
    $articles = Article::latest('published_at')->paginate(3); 
    return view('articles/index')->with('articles',$articles); 
} 

Và mã trong lưỡi:

{!! $articles->render() !!} 

Cuối cùng mã trong các tuyến đường:

Route::get('articles',array('as' => 'article-list','uses' => '[email protected]')); 

Vấn đề là Laravel tạo các url sai đến các trang khác nhau như vậy: example.com/articles/?page=2, có thêm/trước?

Có một workaround để sửa url bằng cách gọi setPath() trước khi thông qua dữ liệu để xem, và các liên kết bây giờ làm việc, như thế này:

$articles = Article::latest('published_at')->paginate(3); 
$articles->setPath('articles'); 
return view('articles/index')->with('articles',$articles); 

Nhưng có những lựa chọn khác để tạo liên kết đúng vào các trang web trong Laravel 5 và tôi đã bỏ lỡ điều gì đó?

Cảm ơn bạn.


Cập nhật môi trường: xampp.

Trả lời

10

Sử dụng mã này trong lưỡi của bạn,

{!! str_replace('/?', '?', $articles->render()) !!} 

Mã này tạo ra các url chính xác.

+1

Cảm ơn bạn đã trả lời Vinod. Nhưng tôi sẽ nói, giống như cách tiếp cận (gọi setPath()) được đề cập trong câu hỏi, theo ý kiến ​​của tôi đây chỉ là một cách giải quyết. Tôi thực sự hy vọng để có được thoát khỏi viết mã bổ sung để có được cùng một liên kết pagination như trong Laravel 4. Nhưng có vẻ như là L5 cố tình làm điều đó. – Carter

+0

Theo dõi vấn đề này: https://github.com/laravel/framework/issues/8231 –

Các vấn đề liên quan