如果变量== 0,则Laravel扩展/包含布局

时间:2014-10-13 15:52:21

标签: php layout laravel blade

我使用laravel 4.0 im tyring仅在变量== 0时显示布局(以防用户尝试导航到网址而不是点击)(我知道我可以重定向而不是扩展但是这是不可取的现在)

我试图让布局仅在用户手动导航到页面时延伸,如果noajax在转到函数时没有发送ajax请求,则将其设置为true,因此如果用户在哪里导航到手动显示网址,它仍会显示页面,但会扩展布局。

@if ($noajax==1)
  

@extends(' layouts.master&#39)

     

@endif

     

@section('内容&#39)

//控制器

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'));
        }
}

1 个答案:

答案 0 :(得分:0)

在这种情况下,您应该在控制器中使用2个视图。

在控制器中你应该使用:

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

noajax视图中,您可以从任何其他视图进行扩展,如果noajaxajax具有公共代码,则应将其放在单独的文件中并在其中使用@include两个视图都包含代码的公共部分。