我使用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'));
}
}
答案 0 :(得分:0)
在这种情况下,您应该在控制器中使用2个视图。
在控制器中你应该使用:
if ($noajax) {
return View::make('noajax');
}
else {
return View::make('ajax');
}
在noajax
视图中,您可以从任何其他视图进行扩展,如果noajax
和ajax
具有公共代码,则应将其放在单独的文件中并在其中使用@include
两个视图都包含代码的公共部分。