Условное расширение в Blade
есть ли способ сделать условный @extends
оператор на языке шаблонов Blade?
что я пробовал:
@if(!Request::ajax())
@extends('dashboard.master')
@section('content')
@endif
<div class="jumbotron">
Hey!
</div>
@if(!Request::ajax())
@stop
@endif
выход
когда запрос не был AJAX, он распечатал @extends('dashboard.master')
, но запрос AJAX работал нормально.
что я пытаюсь сделать
остановить включение шаблона master (который включает в себя header
и footer
) для AJAX, чтобы он мог легко отображать запрошенное содержимое
3 ответов
в генплане:
@if(!Request::ajax())
//the master layout with @yield('content'). i.e. your current layout
@else
@yield('content')
@endif
такого рода логика действительно должна быть исключена из шаблона.
в вашем контроллере установите $layout
свойства панели.мастер тогда вместо вызова возврата вашего представления или ответа, завершите с помощью just $this->layout->content = View::make('dashboard.template')
посмотри Laravel docs на
вы могли бы в конечном итоге с чем-то вроде этого
<?php
class Something extends BaseController {
$layout = 'dashboard.master';
public function getIndex()
{
$template = View::make('dashboard.template');
if(Request::ajax()) {
return $template;
}
$this->layout->content = $template;
}
}