Laravel动态设置页面标题报错:Syntax error, unexpected token "<"
报错原因
你写的Blade语法存在嵌套错误,这是触发语法报错的核心原因:
@yield、{{ }}、@if三类Blade语法被错误嵌套:{{ }}是输出变量的语法糖,内部不能再写@if这类带@标识的Blade指令;如果是直接读取传入的$title变量,布局文件里根本不需要用@yield占位。@extends继承指令位置错误,Blade要求该指令必须放在子模板文件的最顶部,放在其他标签后面会引发渲染异常。
正确实现代码
布局文件(front.layout.app对应模板)修改title标签部分
直接用PHP空合并运算符??判断变量是否存在即可,代码最简洁:
<title>{{ $title ?? "Islamabad's 1st Digital Real Estate Marketplace | Property051.com" }}</title>
如果习惯用if判断写法,也可以用下面的写法,效果完全一致:
<title> @if(isset($title)) {{ $title }} @else Islamabad's 1st Digital Real Estate Marketplace | Property051.com @endif </title>
子页面传参部分
把@extends移到子模板文件最顶部即可,原有传参数组写法没问题,也可以简化成短数组写法:
@extends('front.layout.app', ['title' => $get_society->society_name])
改完之后执行php artisan view:clear清除视图缓存,就能正常渲染,不会再报语法错误。
内容的提问来源于stack exchange,提问作者Ahil Khan
相关产品推荐
相关产品推荐

