Laravel Blade模板传值显示异常及语法错误问题求助
解决Blade模板变量渲染的语法错误问题
咱们一步一步来排查和解决你的问题,其实核心是变量名不匹配和Blade指令语法使用错误这两个关键点:
第一步:修正Controller里的变量传递错误
你当前的Controller代码里,变量名完全对不上:
- 定义的变量是
$typeType = $request->type; - 传给视图的是
compact('type') - 但Blade模板里用的是
$taskType
这三个名字完全不统一,视图根本拿不到正确的变量值!先把Controller改成这样:
public function method(Request $request){ $taskType = $request->type; // 变量名和视图里的$taskType保持一致 return view('home.profile', compact('taskType')); }
第二步:修正Blade模板的@section写法
你之前的两种写法都存在语法问题:
- 第一种
@section('page_heading',{{$taskType}}):在@section的参数里不需要加{{}},因为这里直接接收PHP表达式,额外加模板语法标记会导致语法解析错误。 - 第二种
@section('page_heading','{{$taskType}}'):把{{$taskType}}当成普通字符串传进去了,所以页面会输出Blade编译后的代码片段,而不是变量的实际值。
正确写法有两种,任选其一即可:
写法一:直接在@section参数里传入变量
@extends('layouts.dashboard') @section('page_heading', $taskType) @section('section') // 此处为业务代码 @stop
写法二:使用闭合式的@section语法
@extends('layouts.dashboard') @section('page_heading') {{ $taskType }} @endsection @section('section') // 此处为业务代码 @endsection
完成以上修改后,页面就能正常显示Booking了。
内容的提问来源于stack exchange,提问作者Shohidur Rahman
相关产品推荐
相关产品推荐

