laravel可通过配置自动识别.php和.blade.php视图文件,只需在appserviceprovider的boot()方法中添加$this->app['view']->addextension('php', 'php');若需在.php文件中使用blade语法,则改用addextension('php', 'blade'),但要求文件仅含blade语法。

当你在Laravel项目中频繁切换Blade模板与纯PHP视图(如.php后缀),手动修改每个视图文件的扩展名既耗时又容易遗漏,现在只需一次配置即可让Laravel自动识别并加载 .php 或 .blade.php 后缀的视图文件,无需重命名任何现有文件。
注册自定义视图加载器
打开 app/Providers/AppServiceProvider.php,在 boot() 方法内添加视图加载器注册逻辑。
定位到 public function boot() 方法,在其中插入以下代码:
$this->app['view']->addExtension('php', 'php');
这行代码告诉Laravel:当遇到 view('welcome') 时,除了默认查找 welcome.blade.php,也尝试加载 welcome.php。注意必须放在 boot() 中,register() 阶段视图服务尚未可用。
覆盖默认Blade编译器(可选)
若你希望所有 .php 视图也能使用 Blade 指令(如 @if、@foreach),需替换 Laravel 默认的 PHP 引擎为 Blade 编译器。
在 AppServiceProvider@boot() 中,紧接上一步之后添加:
$this->app['view']->addExtension('php', 'blade');
【关键前提】 此操作会强制将所有 .php 视图交由 Blade 编译器处理——这意味着文件里不能出现原生 PHP 的 <?php ... ?> 开头,否则编译会报错。推荐仅用于纯 Blade 语法的 .php 文件。
验证配置是否生效
第一步:在 resources/views/ 下新建一个 test.php 文件,内容写 <h1>Hello from PHP view</h1>。
第二步:在任意控制器中调用 return view('test');。
第三步:访问对应路由,页面成功渲染即表示 .php 后缀已被识别。
若返回 View [test] not found,检查是否漏掉 addExtension('php', 'php') 或拼写错误;若页面空白且无报错,可能是 test.php 路径不在 resources/views/ 目录下。











