有人可以解释一下,如果我正常请求页面(不是ajax),为什么我会得到带有打印字符串“@extends('layouts.default')”的空白屏幕?
@if(!Request::ajax())
@extends('layouts.default')
@section('content')
@endif
Test
@if(!Request::ajax())
@stop
@endif
我正在尝试使用 Ajax 解决问题,我不想为每种请求类型创建 2 个模板,而且我确实想使用刀片模板,因此使用控制器布局对我来说不起作用。我怎样才能在刀片模板中做到这一点?我正在看这个Laravel:如何仅渲染模板的一部分? https://stackoverflow.com/questions/15096241/laravel-how-to-render-only-one-section-of-a-template
顺便一提。如果我用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');
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)