Laravel使用Blade组件报unexpected 'endif'语法错误如何解决
错误原因
- 直接诱因是
main.blade.php中调用Blade组件时的传参格式不符合规范:Blade组件的属性传参要求属性名、等号、属性值三者之间不能有多余空格,你当前写的content = "Hello There"存在两处空格,导致Blade模板解析器在编译生成PHP代码时逻辑异常,额外插入了多余的@endif指令,最终触发「意外遇到endif」的语法错误。 - 额外提醒:你的
layout.blade.php缺少HTML根标签<html>,虽不是本次报错的直接原因,但不符合HTML标准,后续可能引发渲染异常。
修复步骤
- 修正组件传参格式,去掉
content和等号、等号和属性值之间的空格,修改后的main.blade.php代码如下:
<x-layout content="Hello There"> </x-layout>
- (可选优化)补全
layout.blade.php的HTML结构,规范代码:
<!DOCTYPE html> <html> <head> <title>Host Cloud Template - Services</title> </head> <body> {{$content}} </body> </html>
- 修复完成后执行
php artisan view:clear清空视图编译缓存,避免旧缓存影响验证结果,再访问页面即可正常运行。
内容的提问来源于stack exchange,提问作者BIDS Salvaterra
相关产品推荐
相关产品推荐

