Php 嵌套叶片布局,截面名称重叠

Php 嵌套叶片布局,截面名称重叠,php,laravel,laravel-blade,Php,Laravel,Laravel Blade,因此,我的应用程序有一个可以管理“缺陷”的区域,还有一个可以管理“资产”的区域。一项资产可以有多个缺陷。当您选择一个缺陷时,它会显示该资产,我希望能够单击该资产,并打开一个对话框,其中的视图与您使用刀片模板在“资产”页面上单击资产时得到的视图相同 我已经成功地做到了这一点,但我不得不使用黑客后,试图修复它使用纯刀片数小时 我有一些布局,第一个是带有sidenav的页面布局,sidenav用于显示实体列表,然后我有一个实体布局,该实体有一个工具栏和一个要查看的实体区域 这是我的sidenav页面布

因此,我的应用程序有一个可以管理“缺陷”的区域,还有一个可以管理“资产”的区域。一项资产可以有多个缺陷。当您选择一个缺陷时,它会显示该资产,我希望能够单击该资产,并打开一个对话框,其中的视图与您使用刀片模板在“资产”页面上单击资产时得到的视图相同

我已经成功地做到了这一点,但我不得不使用黑客后,试图修复它使用纯刀片数小时

我有一些布局,第一个是带有sidenav的页面布局,sidenav用于显示实体列表,然后我有一个实体布局,该实体有一个工具栏和一个要查看的实体区域

这是我的sidenav页面布局:

<div layout="column" flex ng-controller="{!! $ngController !!}" axs-on-show>
    <div layout="row" flex>
        @yield('sidebar')
        @yield('content')
    </div>
    @yield('dialogs')
</div>
@php
    $sectionPrefix = isset($sectionPrefix) ? $sectionPrefix : '';
@endphp
<div layout="column" flex @if(isset($ngController))ng-controller="{!! $ngController !!}"@endif axs-on-show>
    <div flex layout="column" layout-align="center center" ng-if="!{!! $entity !!}">
        <md-progress-circular md-mode="indeterminate" ng-if="{!! $entity !!} === undefined">.   </md-progress-circular>
    <div layout="column" layout-align="center center" ng-if="{!! $entity !!} === null">
        <span>Error Loading {{ $entityName }}</span>
        <md-button ng-click="{!! $refresh !!}">
            <md-icon>refresh</md-icon>
        </md-button>
    </div>
</div>
<div flex layout="column" ng-if="{!! $entity !!}">
    @yield($sectionPrefix.'toolbar')
    @yield($sectionPrefix.'entity')
</div>


@yield($sectionPrefix.'dialogs')

@产量('侧边栏')
@产量(‘含量’)
@产生('对话框')
这是我的实体页面布局:

<div layout="column" flex ng-controller="{!! $ngController !!}" axs-on-show>
    <div layout="row" flex>
        @yield('sidebar')
        @yield('content')
    </div>
    @yield('dialogs')
</div>
@php
    $sectionPrefix = isset($sectionPrefix) ? $sectionPrefix : '';
@endphp
<div layout="column" flex @if(isset($ngController))ng-controller="{!! $ngController !!}"@endif axs-on-show>
    <div flex layout="column" layout-align="center center" ng-if="!{!! $entity !!}">
        <md-progress-circular md-mode="indeterminate" ng-if="{!! $entity !!} === undefined">.   </md-progress-circular>
    <div layout="column" layout-align="center center" ng-if="{!! $entity !!} === null">
        <span>Error Loading {{ $entityName }}</span>
        <md-button ng-click="{!! $refresh !!}">
            <md-icon>refresh</md-icon>
        </md-button>
    </div>
</div>
<div flex layout="column" ng-if="{!! $entity !!}">
    @yield($sectionPrefix.'toolbar')
    @yield($sectionPrefix.'entity')
</div>


@yield($sectionPrefix.'dialogs')
@php
$sectionPrefix=isset($sectionPrefix)$节前缀:“”;
@endphp
.   
加载{{$entityName}时出错
刷新
@收益率($sectionPrefix'toolbar')
@收益率($sectionPrefix'entity')
@产量($sectionPrefix'dialogs')
你可以忽略@sectionPrefix的东西,这是我用来让它工作的方法。“对话”部分的理由是,我的对话必须存在于AngularJS控制器中才能控制它们,以防您感到奇怪

因此,考虑到这两种布局。我为缺陷视图构建了刀片,如下所示:

封闭式刀片服务器使用sidenav列表管理缺陷刀片

@extends('layouts.pages.sidebar_layout.layout',['ngController'=>'manageDefectsController']))
@节(“侧栏”)
@包括(“部件、维护、缺陷、管理缺陷、布局、侧边栏”)
@覆盖
@节(“内容”)
选择缺陷以查看更多详细信息
@包括(“部件、维护、缺陷、缺陷、缺陷”)
@覆盖
单个缺陷的实体视图一旦选中,这就是上面包含的内容(_partials.maintenance.defects.defect.defect)

@extends('layouts.pages.entity_layout.layout',
[
'ngController'=>'defectController',
'entity'=>'defectDataService.defect',
'entityName'=>'Defect',
'refresh'=>'defectDataService.refreshDefect'
])
@节(“工具栏”)
@包括(“部件、维护、缺陷、缺陷、布局、工具栏”)
@覆盖
@第节(“实体”)
//此处是资产的html视图,其中包含一个按钮,用于打开对话框,资产视图如下所示:
@覆盖
@节(“对话框”)
@包括(“\u partials.maintenance.assets.asset.asset”,[“sectionPrefix”=>“from defect”])
@覆盖
如果你已经走到了这一步,你仍然感兴趣,我的问题是,没有这个$sectionPrefix解决方案,这些部分都是一团糟的。基本上_partials.maintenance.assets.asset.asset也有一个“dialogs”部分,然后覆盖上面的部分,这意味着应该打开的实际对话框永远不在DOM中。我知道这很让人困惑,我正在努力将我观察到的所有不同行为用语言表达出来

我之所以使用@overwrite,是因为这是我以前在网上找到的建议,@endsection不起作用,因为那时任何名为“dialogs”的子节都不会被使用/呈现

这是一个令人费解的问题,请随意否决,但是否有人有过刀片的经验,即多次嵌套同一布局,以及您如何处理分区名称中出现的问题@覆盖显然修复了这个问题,但在我的例子中,这只是覆盖了从最深层到最高层的所有内容,使得它同样具有破坏性和无用性。谢谢