【发布时间】:2019-11-26 15:26:46
【问题描述】:
我最近开始构建一个 Laravel/blade Web 应用程序,我想在我的布局视图显示的内容之间切换。当我按下布局文件中的按钮时,我想将'content' 替换为其他一些blade.php 视图。例如,在 ReactJS 中,您可以只使用 IF 语句和一些变量来确定呈现的内容。
<div class="container">
@yield ('content')
</div>
我用谷歌搜索了一下,但找不到直接的解决方案,所以我想知道这在 Laravel 中是否很常见,还是你只需要与其他 @yield('...') 制作很多不同的布局文件?很多代码会重复吧?
【问题讨论】:
-
在 Laravel 中,你定义的是一个布局。您可以使用刀片指令 @extends 扩展布局并使用 @section('content') 定义部分您可以在此处进一步阅读:laravel.com/docs/5.6/blade#defining-a-layout
-
那么,在@section('content') 里面我可以创建一个开关函数来决定用户将看到什么?
-
所以我想我弄错了,你可以按照你的计划使用你的开关盒,但你应该使用@include,在这里阅读更多:laravel.com/docs/5.6/blade#including-sub-views
-
当你在布局文件中按下一个按钮时,让它去一个 Laravel 路由。在控制器端做一些处理,然后返回你想要显示的视图。在该视图中,只需在顶部添加
@extends('layout')并添加@section('content')并在该部分下添加要显示的 html。 -
我想你想要实现类似的东西,一个将项目列为列表和图标的按钮。如果是这种情况,您可以设置一个会话变量,每次单击更改布局按钮时都会更新该变量。然后在您的视图文件中,您可以检查该会话变量以确定应使用哪种布局(设计)。
标签: php laravel laravel-blade