Tại sao bạn không chỉ thay thế nội dung thực tế trong trang được hiển thị bằng phần tử div hoặc html?
Tôi làm điều này mọi lúc với jQuery. Tôi chỉ đơn giản là xây dựng trang ban đầu của tôi và gửi nội dung cho các khung nhìn của tôi để hiển thị các phần trong bố cục chính của tôi.
Giả sử tôi có cột điều hướng bên trái và sau đó là một bài viết ở cột bên phải. Người dùng nhấp vào một nút để hiển thị bài viết tiếp theo, vì vậy đó là những gì tôi muốn thay thế.
Đầu tiên xây dựng quan điểm ban đầu từ điều khiển của bạn
public function index()
{
$article = Article::first();
Return View::make('homepage', compact('article'));
}
Bây giờ trong quan điểm của trang chủ của bạn
@extends('layouts.master')
@section('leftNavigation')
@include('homepageLeftNavigation')
@stop
@section('article')
<div id="articleContent">
@include('article') <!-- see below, you'll update this include with the js below -->
</div>
@stop
@section('script')
@parent
{{-- <script> --}}
//in JQuery I would do something like this
$('a.nextArticle').click(function(){
var next = $('.nextArticle').attr("id");
var next = next + 1;
$('#articleContent').load({{ URL::to('articles/' + next) }};
});
@stop
Giả sử bạn đang sử dụng một bộ điều khiển vát bạn có thể sử dụng chức năng hiển thị() của bạn, nhưng nếu bạn chỉ muốn một lời trêu ghẹo trên trang chủ, bạn có thể dễ dàng tạo ra một chức năng mới cho điều đó là tốt.
Trong chương trình của bạn() hoặc newFunctionWhateverYouCallIt(), bạn chỉ có thể nhận được bài viết bởi id
Article::find($id);
Sau đó gửi mà tắt để nhằm được trả lại.
return View::make('article');
Và cuối cùng lượt xem bài viết bạn gọi bao gồm khi bạn lần đầu tiên được xây dựng trang và một lần nữa sau khi cập nhật qua Jquery hoặc pjax
{{ $article->title }}
{{ $article->body }}
{{ $article->date }}
<a href="#" class="nextArticle" id="{{ $article->id }}">Next Article ></a>
Xin lưu ý tôi đã không kiểm tra mã này vì vậy tôi chắc chắn có một vài lỗi, nhưng bạn có ý tưởng chung về logic để cập nhật một phần của trang của bạn.
Nó không hoàn hảo, nhưng nó khá gần. Nếu điều này hoạt động (chưa thử nó) và không có ai đi kèm với một giải pháp tốt hơn, tôi sẽ chấp nhận câu trả lời này. –