Why wouldn't you just replace the actual content in the rendered page using a div or html element?
I do this all the time with jQuery. I simply build my initial page and send content to my views that render sections in my master layout.
Let's say I had a left navigation column and then an article in the right column. The user clicks a button to display the next article, so that's what I want to replace.
First build the initial view from your controller
public function index()
{
$article = Article::first();
Return View::make('homepage', compact('article'));
}
Now in your homepage view
@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
Assuming you're using a resourceful controller you could use your show() function, but if you just wanted a teaser on the homepage you could easily create a new function for that as well.
In your show() or newFunctionWhateverYouCallIt() you can just get the article by id
Article::find($id);
Then send that off to a view to be rendered.
return View::make('article');
And finally the article view you called included the when you first built the page and again after updating via Jquery or pjax
{{ $article->title }}
{{ $article->body }}
{{ $article->date }}
<a href="#" class="nextArticle" id="{{ $article->id }}">Next Article ></a>
Please note I haven't tested this code so I'm sure there are a few mistakes, but you get the general idea of the logic for updating a single section of your page.