【发布时间】:2018-11-21 18:57:43
【问题描述】:
我从 laravel 开始。现在已经创建了一个管理面板设计。 我想在默认情况下为 /admin 上启动的所有路由显示一个视图(管理面板左侧的菜单)
然后根据路由加载容器的内容。 我是否必须在所有路线中设置我的左侧视图,或者我可以为所有路线“全局”设置它?
我使用的 Laravel 版本是 5.7
【问题讨论】:
-
我认为您正在寻找的是一个布局。看the docs.
我从 laravel 开始。现在已经创建了一个管理面板设计。 我想在默认情况下为 /admin 上启动的所有路由显示一个视图(管理面板左侧的菜单)
然后根据路由加载容器的内容。 我是否必须在所有路线中设置我的左侧视图,或者我可以为所有路线“全局”设置它?
我使用的 Laravel 版本是 5.7
【问题讨论】:
您只需为管理员创建一个布局,所有与管理员操作相关的控制器都将呈现扩展您定义的 admin 布局的视图。
布局文件admin.blade.php
<html>
<head>
<title>App Name - @yield('title')</title>
</head>
<body>
<div id="menu">
<!-- use the css to style this element on the left -->
<ul>
<li>Your Menu code goes here</li>
</ul>
</div>
<!-- Here is where all content related to each route will be rendered -->
<div class="container">
@yield('content')
</div>
</body>
</html>
如果你有一个允许你编辑帖子的控制器,你可以渲染一个视图admin/edit.blade.php,它是这样定义的
@extends('admin.blade.php')
@section('content')
Content to be display related to each route goes here
@endsection
包装在@section('content') 中的内容将呈现在admin.blade.php 中,这是包装@yield('content 的容器中的管理布局)`
【讨论】: