当前位置:首页 > CMS教程 > 其它CMS > 列表

Laravel 实现在Blade模版中使用全局变量代替路径的例子

发布:smiling 来源: PHP粉丝网  添加日期:2022-01-15 19:31:32 浏览: 评论:0 

今天小编就为大家分享一篇Laravel 实现在Blade模版中使用全局变量代替路径的例子,具有很好的参考价值,希望对大家有所帮助,一起跟随小编过来看看吧。

在使用tp框架时,我们可以用常量来代替文件路径,如:

<img class="style" src="__TMPL__/uploads/ad/{$item.config.shop_image}">

我们只需要在配置文件中设置即可,

TMPL_PARSE_STRING' => array(              '__TMPL__' => __ROOT__.'/tpl',            '__UPLOAD__' => __ROOT__."/Data/upload")

但是在laravel框架中想要使用这种方式,却不知从何入手,然后就各种找资料,后来就用变量代替了常量。

方法一:

在laravel框架中可以视图中共享数据,利用共享数据的方式将路径设置为变量即可,在app\Providers\AppServiceProvider.php的boot方法中添加代码:

View::share("boot","/resources/assets/");

然后在blade模板中直接使用{{ $boot }}就可以获取到所设置的值,这样在引用资源时就不用谢全路径了

方法二:

由于 Blade 模版中允许使用原生 PHP 代码,所以我们可以在页面前面使用 PHP 语句来定义变量:

<?php $boot = "/resources/assets/"; ?>

然后在需要的地方直接使用{{ $boot }}就可以获取到所设置的值;

方法三:

除了上面的方法,我们还可以使用 Blade 的注释语法来定义/设置变量,由于在 Blade 中 {{-- 这里是注释 --}} 会被解析为 <?php /* 这里是注释 */ ?>,所以我们可以使用下面这样的语句来定义变量:

  1. {{-- */$i=0;/* --}} 
  2. // 这条语句会被 Blade 解析为 
  3. <?php /* */$i=0;/* */ ?> 

当然,我们还可以通过扩展 Blade 模版引擎的方法来实现,具体扩展方法可以参考 官方文档。

Tags: Laravel全局变量 Blade

分享到: