[英]Laravel Blade: Show meta-tag only when variable is given on extend
这是我的master.blade.php
的开始
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>@yield('title')</title>
<meta name="description" content="@yield('meta_desc')">
如果我将其扩展到没有像这样给出meta_desc
的页面:
@extends('layouts.index')
@section('title')
A nice title
@endsection
此页面的标题中包含带空说明的元标记
<meta name="description" content="">
但是,当没有给出meta_desc时,我想完全跳过meta标签。 我试图将master.blade.php
的代码更改为
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>@yield('title', )</title>
@if(!empty($meta_desc))
<meta name="description" content="@yield('meta_desc')">
@endif
但随后是元标记
<meta name="description" content="">
那时总会丢失。 我该如何解决?
你可以做这样的事情
master.blade.php
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>@yield('title')</title>
@if($metaDesc != "")
<meta name="description" content="{{ $metaDesc }}">
@endif
调节器
$metaDesc = "Testing";
return view('test', compact('metaDesc'));
test.blade.php
@extends('layouts.master')
@section('title', 'Testing')
@section('content')
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aspernatur consectetur eligendi esse id praesentium ullam! Alias asperiores, consectetur delectus, dicta facilis impedit itaque iure magni nisi odio perferendis tenetur ut!
@endsection
因此,基本上我所做的是将meta description变量传递给主版面,如果变量为“”,则根本不显示<meta>
。
如有任何疑问,请随时与我们联系。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.