Laravel расширить / включить макет, если переменная == 0

Я использую laravel 4.0, я стараюсь отображать макет, только если переменная == 0 (на всякий случай, если пользователь пытается перейти к URL-адресу, а не щелкать по нему) (я знаю, что могу перенаправлять вместо расширения, но пока это нежелательно)

Я пытаюсь заставить макет расширяться только тогда, когда пользователь переходит на страницу вручную, noajax устанавливается в значение true, если его не отправляется запрос ajax, когда он переходит к функции, поэтому, если пользователю нужно перейти к URL-адресу вручную он все равно будет отображать страницу, но расширит макет.

@if ($noajax==1)

@extends ( ‘layouts.master’)

@endif

@section ( ‘содержание’)

// контроллер

public function test($id,$model)
{

if (Request::ajax())
{
//$foreign_key and $model must be <> null
if ($id == null || $model == null) {
$this->render('../Errors/missing_arg', 'error');
return;
}

if($model=="ArtObj")
{
$partable = "art_objects";
$path='img/art-objects/';
}

$parid=$id;
$noajax=0;

$mediaimgs = Media::where('parent_id' , $id )->where('parent_table', $partable)->paginate(15);
$response = Response::Json($mediaimgs);
return View::make('/Admin/manageimage/manage_image',compact('parid','mediaimgs','model','path','noajax'));}
else{

if($model=="ArtObj")
{
$partable = "art_objects";
$path='img/art-objects/';
}

$parid=$id;$mediaimgs = Media::where('parent_id' , $id )->where('parent_table', $partable)->paginate(15);
$response = Response::Json($mediaimgs);
$noajax = 1;
return View::make('/Admin/manageimage/manage_image',compact('parid','mediaimgs','model','path','noajax'));
}
}

0

Решение

В этом случае вы должны использовать 2 вида в контроллере.

В контроллере вы должны использовать:

if ($noajax) {
return View::make('noajax');
}
else {
return View::make('ajax');
}

В noajax вид вы можете расширить из любого другого вида, и если noajax а также ajax иметь общий код, вы должны поместить его в отдельный файл и использовать @include в этих обоих представлениях включить общую часть кода.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]