如果只包含刀片模板 ,如何存在? 我可以这样做:
@if (File::exists('great/path/to/blade/template.blade.php'))
@include('path.to.blade.template')
@endif
但这真的不优雅高效。
我可以在没有if语句的情况下包括它,并且赶上&如果文件不在这里,则隐藏错误,但如果不是野蛮的话,那就有点脏了。
会是什么样的事情:
@includeifexists('path.to.blade.template')
(伪代码,但此刀片命令不存在)
答案 0 :(得分:19)
您可以使用array[0]
检查视图是否存在。
array[1][2]
或者您可以扩展刀片并添加新指令
View::exists()
答案 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'])
答案 4 :(得分:0)
上次展示,但还有另一个非常方便的模板功能:
通常,您希望在有模板的情况下包括它,而或则包括其他模板。即使使用'@includeIf',这也可能导致if-then构造非常难看。您也可以这样做:
isoweek()
这将包括-如功能名称所示-找到的第一个模板。