当前位置: 首页 > 知识库问答 >
问题:

Laravel:调用刀片模板内的静态函数

佘京
2023-03-14

我发现非常奇怪的情况。我有一些结果的集合,我想抓住每个结果保存在缓存信息。为此,我有一个缓存类,它有一个静态函数get()。不幸的是,我没有收到任何东西,当我在我的刀片模板的Foreach循环中调用它。

@foreach($prognoses as $sport_prognose)
    <?php
        $pr = Cache::get(Config::get('variables.cache.prediction'), ['id' => $sport_prognose['id']]);
        print_r($pr);
        die();
    ?>
@endforeach

如果我在控制器内调用相同的函数,则显示所需的信息,但与上面的示例不同。

为什么呢?

共有2个答案

龙嘉誉
2023-03-14

在刀片模板中,您可以编写如下内容:

{{ $pc::getProducts($ship->products) }}

注意变量的使用。显然getProducts是控制器内部的静态方法,并且$ship-

 static function getProducts($id) { echo "id is $id; } 

如果你运行这个脚本,你会得到一个错误,因为模板缺少$pc的值。你如何解决这个问题?您需要将$this的值传递给模板:

 return View::make('shipping.index')->with(['pc' => $this, 'shipping' => $shippings);

这里是海运。index是模板,pc获得$this的值,这允许$pc获得刀片模板内getProducts的访问权限。

许彭祖
2023-03-14

您可以使用ache()config()和其他全局帮助程序来代替facade来避免这种问题。

 类似资料:
  • Laravel中的刀片模板是否有类似Smarty的截断修改器? 我知道我可以在模板中写出实际的php,但我正在寻找更好的东西来编写(我们不要讨论整个php是一个模板引擎)。 例如,我在寻找这样的东西: 我知道我可以通过作曲家使用像树枝这样的东西,但我希望Laravel本身具有内置功能。 如果没有,可以像Smarty提供的那样创建自己的可重用修饰符。我喜欢Blade不会过度使用所有语法,但我认为tr

  • 我有一个自定义函数,我想在刀片模板中传递它。这里是功能: 用法如下: 是否可以将自定义功能传递给刀片模板?非常感谢。

  • 问题内容: 我正在阅读Laravel Blade 文档,但无法弄清楚如何在模板内分配变量以供以后使用。我不能这样做,因为那会回显“任何内容”,而我不希望那样。 我知道我可以做到,但这并不优雅。 在Blade模板中是否有更好,更优雅的方法来做到这一点? 问题答案: 不建议在视图中进行操作,因此没有刀片标签。如果您确实想在刀片视图中执行此操作,则可以在编写时打开一个php标签,也可以注册一个新的刀片标

  • 在我的观点中,我扩展了一个刀片模板,它充当我的主模板。我有一个ViewComposer设置,它为这个模板提供了许多变量。 我遇到了一种情况,需要在是启动函数的页面。 通过ViewComposer传递的变量是否达到初始视图的范围?或者我需要创建另一个ViewComposer来传递相同的变量。 这最终给了我一个未定义的变量错误。

  • 我正在为一个在Laravel中完成的站点编写代码,我知道不建议在Blade模板中编写PHP代码,但在这个例子中,我的可用时间有限。 中间的PHP代码不起作用?

  • 静态模板类: 类文件 include/dedetag.class.php 这个文件是dedecms V5.3及之前版本使用的主要的模板类,它是解析式模板类,并非编译式的(区别是前者通过获得标签位置进行内容替换,后者是直接解析式PHP代码,二次执行) 一、模板语法 织梦模板引擎是一种使用XML名字空间形式的模板解析器,使用织梦解析器解析模板的最大好处是可以轻松的制定标记的属性,感觉上就像在用HTML