Laravel 4:如果刀片布局中的语句很奇怪

Mr.*_*ive 5 laravel blade laravel-4

有人可以解释我为什么我得到带有打印字符串的空白屏幕"@extends('layouts.default')"如果我正常请求页面(不是ajax)?

@if(!Request::ajax())
  @extends('layouts.default') 
  @section('content')
@endif
Test
@if(!Request::ajax())
  @stop
@endif
Run Code Online (Sandbox Code Playgroud)

我正在尝试用Ajax解决问题,我不想为每种请求类型创建2个模板,而且我也想使用刀片模板,因此使用控制器布局对我来说不起作用.如何在刀片模板中执行此操作?我在看这个Laravel:如何只渲染模板的一个部分?

顺便说说.如果我用ajax请求它,它应该像它应该的那样工作.

Mr.*_*ive 9

是的@extends必须在第1行.

我找到了PJAX的解决方案.一开始我不确定这可以解决我的问题,但确实如此.不知道为什么我害怕丢失刀片功能,如果你真的不能失去这种方式.如果有人使用PJAX并且需要使用带有和不带布局的模板,这可能是您的解决方案:

protected $layout = 'layouts.default';

public function index()
{
  if(Request::header('X-PJAX'))
  {
    return $view = View::make('home.index')
      ->with('title',  'index');
  }
  else
  {
    $this->layout->title = 'index';
    $this->layout->content = View::make('home.index');
  }
}
Run Code Online (Sandbox Code Playgroud)