Question: I'm trying to use pjax on my site, which means that for a full page request I render the whole template (this is normal behaviour), but on pjax requests I would like to render just one section. My templates all extend a master template.

How can I most elegantly do that?

Answer: 
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.
Inside your controller's action, explicitly return the partial view you wanted to render:

```
public function action_someajax()
{
    ...
    return View::make('mypartial', $data);
}

```

This would render the partial instead of the controller's layout.