Blade模板须以.blade.php结尾并置于resources/views/下;布局继承需@extends后接@section/@endsection且名称严格一致;{{}}自动转义而{!!}}原样输出;组件传参加:表示PHP表达式。

Blade模板文件怎么命名和放哪
Blade模板必须以 .blade.php 结尾,不能只用 .php;Laravel 只识别这个后缀才会启用 Blade 编译器。文件得放在 resources/views/ 目录下,子目录可以有,比如 resources/views/admin/dashboard.blade.php,对应视图名就是 admin.dashboard。
常见错误:把文件存成 dashboard.php 或丢到 app/Views/ 里——Laravel 完全不认,view() 会报 View [xxx] not found。
- 命名别含空格或中文,如
user list.blade.php→ 改成user_list.blade.php - 路径里的斜杠自动转成点号,
pages/home.blade.php的视图名是pages.home - 别在
views外建同名文件夹(比如public/views),Laravel 不扫描那里
@extends 和 @section 怎么配对才不报错
Blade 的布局继承靠 @extends 和 @section 配合,但顺序和闭合很容易出错。父模板里用 @yield('name') 预留位置,子模板用 @section('name')...@endsection 填充——不能写成 @section('name')...@stop(旧写法已弃用,5.8+ 会警告)。
典型报错:Undefined variable: __env 或页面空白,往往是子模板漏了 @extends,或 @section 没闭合,又或者父模板里 @yield 名字和子模板的 @section 对不上。
- 父模板中
@yield('content'),子模板必须写@section('content'),大小写、拼写全得一致 -
@section必须在@extends之后、@endsection之前,不能包在 PHP 条件块里再开 section(会解析失败) - 想追加内容而不是覆盖,用
@push('stack_name')+@stack('stack_name'),不是反复写@section
{{ $var }} 和 {!! $var !!} 的区别到底在哪
{{ $var }} 自动 HTML 转义,{!! $var !!} 原样输出——这是 XSS 风险的核心分界线。绝大多数时候该用双大括号,只有确认内容绝对可信(比如后台预设的富文本字段、自己生成的 SVG 字符串)才用花括号加叹号。
容易踩的坑:从数据库读出用户输入的标题、评论,直接用 {!! $post->title !!},结果别人提交 <script>alert(1)</script> 就执行了;或者反过来,把本该渲染的 HTML(比如 Markdown 转义后的 <h2>标题</h2>)用双大括号,页面就显示一堆尖括号。
- 数据库字段含 HTML?先判断来源:用户填的 → 一律
{{ }};管理员后台手动录入且校验过 → 才考虑{!! !!} - 用
Str::markdown()或md2html类库转换后,返回的是安全 HTML 字符串,这时才适合{!! !!} - Blade 不处理变量里的 PHP 代码,
{{ $x = 'abc' }}不会赋值,要用@php $x = 'abc'; @endphp
Blade 组件传参时 name 和 :name 有什么不同
组件调用时,<x-alert message="Oops!"></x-alert> 是传字符串字面量,<x-alert :message="$error"></x-alert> 是传变量值——冒号 : 表示“接下来是 PHP 表达式”,没冒号就是纯字符串。
常见问题:传数组或布尔值时忘加冒号,比如 <x-button disabled></x-button>,组件里收到的是字符串 "true",不是布尔 true,导致 @if ($disabled) 判断失效(非空字符串恒为 true)。
- 传布尔值、数组、对象、函数调用结果,必须加
:,如:disabled="$isDisabled"、:options="['a', 'b']" - 传字符串字面量可不加冒号,但若含空格或特殊字符(如
data-id="123"),建议统一加引号并省略冒号,避免歧义 - 组件内接收参数默认是字符串,
public function __construct(public string $message)会强制转类型,但传布尔时仍需:触发表达式解析


















