ncl*_*svh 9 php jquery dynamic twitter-bootstrap laravel
我有layouts.app.blade.php,我有我的<html>和<body>标签,还有<nav>.
在<body>我为每个页面生成内容,所以他们基本上扩展了这个app.blade.php.
所有基本的Laravel东西,所以现在我有这个:
<div class="navbar-header">
<!-- Collapsed Hamburger -->
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#spark-navbar-collapse">
<span class="sr-only">Toggle Navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<!-- Branding Image -->
<a class="navbar-brand" href="/">
*Dynamic page title*
</a>
</div>
// ...
@yield('content')
Run Code Online (Sandbox Code Playgroud)
我想用它<a class="navbar-brand">来显示我的pagetitle.所以这意味着它必须为这个'parent.blade.php'中加载的每个模板(使用@yield('content'))进行更改.
我如何使用Laravel 5.2做到这一点?
非常感谢
Phi*_*iki 28
如果这是您的母版页标题
<html>
<head>
<title>App Name - @yield('title')</title>
</head>
<body>
@section('sidebar')
This is the master sidebar.
@show
<div class="container">
@yield('content')
</div>
</body>
Run Code Online (Sandbox Code Playgroud)
然后您的页面标题可以在您的刀片页面中更改,如下所示
@extends('layouts.master')
@section('title', 'Page Title')
@section('sidebar')
@parent
<p>This is appended to the master sidebar.</p>
@endsection
@section('content')
<p>This is my body content.</p>
@endsection
Run Code Online (Sandbox Code Playgroud)
更多信息可以在这里找到Laravel Docs
在 Laravel 9 和 PHP 8 中对我有用的另一种选择是在主布局中使用 prop。在我的项目中,我只有一种布局,所以很简单:
<x-layout :title="' - Page Title'">
<!-- content -->
</x-layout>
Run Code Online (Sandbox Code Playgroud)
然后在layout.blade.php文件中:
@props(['title'])
<!DOCTYPE html>
<html lang="en">
<head>
<title>Static Title{{$title ?? ""}}</title>
</head>
<body>
<main>
{{$slot}}
</main>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
例如,您可以将其传递给视图
控制器
$title = 'Welcome';
return view('welcome', compact('title'));
Run Code Online (Sandbox Code Playgroud)
看法
isset($title) ? $title : 'title';
Run Code Online (Sandbox Code Playgroud)
或 php7
$title ?? 'title';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21375 次 |
| 最近记录: |