覆盖现有的Blade指令

时间:2018-03-06 14:57:25

标签: laravel model-view-controller blade laravel-5.5

我正在构建一个使用Blade实现继承模板系统的系统。根据用户的位置,将加载不同的视图。

系统运行良好,我有一个默认的'主题',其中包含网站使用的所有内容的所有视图和组件。我没有在我的控制器中使用默认的view方法,而是使用我自己的函数,它的工作方式与view相同,而是尝试在层次结构的最低部分加载视图然后继续前进,直到达到默认值。

例如,我的视图结构如下:

+-- views
|   +-- frontend
|      +-- default
|         +-- home.blade.php
|         +-- test.blade.php
|      +-- site1
|         +-- en-gb
|             +-- home.blade.php
|         +-- en-de 
|             +-- home.blade.php 
|      +-- site2
|         +-- en-gb 
|             +-- home.blade.php 

这很有效。我可以致电custom_view('home');并根据某些情况显示正确的观点。在上面的示例中,如果我调用custom_view('test'),我的系统将检查站点和区域设置的正确文件夹,如果视图不存在,则将使用默认回退。

当我想在我的代码中使用Laravel指令加载视图部分时,我的问题出现了。麻烦的三个指令是:

@each()@include()@component()

我想覆盖这些指令,让他们首先从我的视图结构中的相应子目录中查找该文件。

如何覆盖Blade指令?

1 个答案:

答案 0 :(得分:0)

我无法找到覆盖现有组件以添加继承的方法。我转而推出自己的组件。