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请求它,它应该像它应该的那样工作.
是的@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)