【问题标题】:Laravel extend/include layout if variable == 0如果变量 == 0,Laravel 扩展/包含布局
【发布时间】:2023-03-29 22:43:01
【问题描述】:

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

我试图让布局仅在用户手动导航到页面时扩展,如果在转到函数时没有发送 ajax 请求,则 noajax 设置为 true,因此如果用户导航到的位置手动的 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'));
        }
}

【问题讨论】:

  • 你的问题到底是什么?
  • 啊抱歉,如果用户导航到它,布局会在页面上弹出,或者按下调用 ajax 请求的按钮。
  • 我不是要挑剔你或任何东西,但我仍然看不出你想问什么。我认为您假设人们会阅读您的代码并理解您想要什么,但您的代码没有 cmets 来帮助其他人理解它的作用。此外,并不是每个人都愿意通读您的代码以试图了解您想要什么,因此如果您尽可能清楚地解释问题是什么或您想知道什么,您获得答案的机会就会高得多。跨度>
  • 我更新了问题。

标签: php layout laravel blade


【解决方案1】:

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

在控制器中你应该使用:

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

noajax 视图中,您可以从任何其他视图扩展,如果noajaxajax 有共同代码,您应该将其放在单独的文件中并在这两个视图中使用@include 以包含代码的共同部分.

【讨论】:

    猜你喜欢
    • 2021-02-22
    • 1970-01-01
    • 2014-12-07
    • 2016-09-02
    • 2017-04-08
    • 2023-03-28
    • 2017-03-15
    • 1970-01-01
    • 2020-08-29
    相关资源
    最近更新 更多