如何仅包含刀片模板?

时间:2015-08-19 17:48:27

标签: laravel blade

如果只包含刀片模板 ,如何存在? 我可以这样做:

@if (File::exists('great/path/to/blade/template.blade.php'))
   @include('path.to.blade.template')
@endif

但这真的不优雅高效。

我可以在没有if语句的情况下包括它,并且赶上&如果文件不在这里,则隐藏错误,但如果不是野蛮的话,那就有点脏了。

会是什么样的事情:

@includeifexists('path.to.blade.template')

(伪代码,但此刀片命令不存在)

5 个答案:

答案 0 :(得分:19)

您可以使用array[0]检查视图是否存在。

array[1][2]

或者您可以扩展刀片并添加新指令

View::exists()

查看官方文档:http://laravel.com/docs/5.1/blade#extending-blade

答案 1 :(得分:18)

有类似的问题。事实证明,为此目的有一个@includeIf刀片指令。

只需@includeIf('path.to.blade.template')

答案 2 :(得分:0)

在控制器中需要时(from this documentation):

确定是否存在视图如果您需要确定是否存在视图  存在,您可以在调用视图助手后使用exists方法  没有参数。如果视图存在,此方法将返回true  盘:

use Illuminate\Support\Facades\View;

if (View::exists('emails.customer')) {
    \\
}

答案 3 :(得分:0)

Laravel> = 7,存在指令includeIf

@includeIf('view.name', ['some' => 'data'])

https://laravel.com/docs/7.x/blade#including-subviews

答案 4 :(得分:0)

上次展示,但还有另一个非常方便的模板功能:

通常,您希望在有模板的情况下包括它,而则包括其他模板。即使使用'@includeIf',这也可能导致if-then构造非常难看。您也可以这样做:

isoweek()

这将包括-如功能名称所示-找到的第一个模板。