首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >放置Blade::extend的位置

放置Blade::extend的位置
EN

Stack Overflow用户
提问于 2013-08-20 15:43:07
回答 2查看 16.7K关注 0票数 21

我想将以下代码添加到我的laravel项目中,以支持blade中的break和continue语句。

代码如下:

代码语言:javascript
运行
复制
Blade::extend(function($value)
{
  return preg_replace('/(\s*)@(break|continue)(\s*)/', '$1<?php $2; ?>$3', $value);
});

我不知道该把它放在哪里,有什么需要帮助的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-20 15:54:50

没有必要告诉你应该把代码放在哪里,你甚至可以把它放到你的routes.php中(当然这有点乱)。您只需确保在laravel处理页面视图时加载它。

在这种情况下,在某个地方创建一个新文件blade_extensions.php并将其包含在start/global.php中可能是一个很好的解决方案。

注:一定要清除编译后的视图,因为Blade只有在检测到更改时才会重新编译视图,所以如果您刚刚插入这段代码,它将无法工作,直到您清除视图。

票数 19
EN

Stack Overflow用户

发布于 2015-02-10 00:19:11

Laravel 5更新:

1)您可能希望在与Models, Providers, Services文件夹相同的级别创建Extensions\BladeExtensions.php文件夹\file

2) BladeExtensions.php

代码语言:javascript
运行
复制
<?php namespace App\Extensions;

class BladeExtensions {

    public static function register()
    {
        \Blade::extend(function($view, $compiler)
        {
            $pattern = $compiler->createMatcher('datetime');

            return preg_replace($pattern, '$1<?php echo $2->format(\'m/d/Y H:i\'); ?>', $view);
        });
    }

}

3) AppServiceProvider.php

代码语言:javascript
运行
复制
// ...
use App\Extensions\BladeExtensions;

class AppServiceProvider extends ServiceProvider
{
    // ...
    public function register()
    {
        // ...

        BladeExtensions::register();
    }

}
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18329541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档