[英]How can I change the Blade template file extention from *.blade.php to only *.blade
我知道 Laravel 的刀片模板位于 /resource/views 目录中。 它的扩展名是.blade.php 。
我的问题是我为前端设计师设置了一个单独的 repo 来处理刀片模板,并且该 repo 被设置为限制推送任何带有.php扩展名的文件。
那么如果我将所有.blade.php文件更改为.blade文件怎么办! 通过这样做,laravel 无法细化视图文件。
我该如何管理它。
您可以轻松添加自定义extension
, Laravel
提供了一种开箱即用的简单方法。 只需打开app\\Providers\\AppServiceProvider.php
文件并在boot
方法中添加以下代码(不要忘记在namespace App\\Providers;
之后use View
类顶部的use View
):
public function boot()
{
View::addExtension('blade', 'blade');
}
现在,你可以使用这样的东西,例如:
Route::get('/example', function () {
return view('example', ['name' => 'The Alpha']);
});
在这种情况下,您应该使用名称example.blade
在views
目录中创建一个视图,例如( resources/views/example.blade
):
<!-- Also a master.blade should be in views/layouts directory -->
@extends('layouts.master')
@section('content')
Hello {{ $name }}
@endSection
这是resources/views/layouts/master.blade
代码:
<!DOCTYPE html>
<html>
<head>
<title>Laravel Custom Template</title>
</head>
<body>
<div>
@yield('content')
</div>
</body>
</html>
如果一切顺利,那么您应该在访问/example
路由时看到Hello The Alpha
。 所以,唯一的事情就是使用View::addExtension('extension', 'engine)
添加一个新的extension
,在这个例子中,我使用了blade
作为引擎,所以你可以使用所有的blade
指令/语法。 或者,您可以使用php
作为引擎,这些默认情况下可用(也file
),如果您使用php
作为引擎,则不能使用blade
指令/语法。
通过扩展Illuminate\\View\\Factory
类来创建自定义视图工厂类。 在该类中,修改$extensions
属性:
protected $extensions = [
'blade' => 'blade', // add this entry
'blade.php' => 'blade',
'php' => 'php',
'css' => 'file',
'html' => 'file',
];
然后,创建一个新的服务提供者,并使用它将您的自定义工厂绑定到View\\Factory
接口:
$this->app->bind(
'Illuminate\Contracts\View\Factory',
'App\YourCustomerViewProvider'
);
应该就是这样。 注意:我没有测试过这个,所以它可能需要调整。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.