如何将 Blade 模板文件扩展名从 *.blade.php 更改为仅 *.blade

Eng*_*Ali 3 php laravel laravel-blade

我知道 Laravel 的 Blade 模板位于 /resource/views 目录中。它的扩展名是.blade.php

我的问题是我为前端设计人员设置了一个单独的存储库来处理刀片模板,并且该存储库设置为仅限推送任何带有.php扩展名的文件。

那么如果我将所有.blade.php文件更改为.blade文件会怎么样!通过这样做,laravel 无法优化视图文件。

我该如何管理它。

The*_*pha 5

您可以轻松添加您的自定义extensionLaravel提供了一种开箱即用的简单方法。只需打开app\Providers\AppServiceProvider.php文件并在方法中添加以下代码(不要忘记在类顶部的 after 后boot使用):use Viewnamespace App\Providers;

public function boot()
{
    View::addExtension('blade', 'blade');
}
Run Code Online (Sandbox Code Playgroud)

现在,您可以使用这样的东西,例如:

Route::get('/example', function () {
    return view('example', ['name' => 'The Alpha']);
});
Run Code Online (Sandbox Code Playgroud)

views在这种情况下,您应该使用 name在目录中创建一个视图example.blade,例如 ( resources/views/example.blade):

<!-- Also a master.blade should be in views/layouts directory -->
@extends('layouts.master')

@section('content')
    Hello {{ $name }}
@endSection
Run Code Online (Sandbox Code Playgroud)

这是resources/views/layouts/master.blade代码:

<!DOCTYPE html>
<html>
    <head>
        <title>Laravel Custom Template</title>
    </head>
    <body>
        <div>
            @yield('content')
        </div>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

如果一切顺利,那么您应该Hello The Alpha在访问/example路线时看到。所以,唯一的事情就是使用 来添加新的extensionView::addExtension('extension', 'engine)在这个例子中,我使用了blade引擎,这样你就可以使用所有的blade指令/语法。或者,您可以用作php引擎,这些默认情况下可用(也file),如果您用作php引擎,则不能使用blade指令/语法。

  • 它工作完美,只添加了两行。使用 Illuminate\Support\Facades\View; 和 View::addExtension('刀片', '刀片'); 进入 AppServiceProvider 非常感谢,Laravel 文档中缺少此选项,或者可能是我错过了。 (2认同)