我想将以下代码添加到我的laravel项目中,以支持blade中的break和continue语句。
代码如下:
Blade::extend(function($value)
{
return preg_replace('/(\s*)@(break|continue)(\s*)/', '$1<?php $2; ?>$3', $value);
});
我不知道该把它放在哪里,有什么需要帮助的吗?
发布于 2013-08-20 15:54:50
没有必要告诉你应该把代码放在哪里,你甚至可以把它放到你的routes.php
中(当然这有点乱)。您只需确保在laravel处理页面视图时加载它。
在这种情况下,在某个地方创建一个新文件blade_extensions.php
并将其包含在start/global.php
中可能是一个很好的解决方案。
注:一定要清除编译后的视图,因为Blade只有在检测到更改时才会重新编译视图,所以如果您刚刚插入这段代码,它将无法工作,直到您清除视图。
发布于 2015-02-10 00:19:11
Laravel 5更新:
1)您可能希望在与Models, Providers, Services
文件夹相同的级别创建Extensions\BladeExtensions.php
文件夹\file
2) BladeExtensions.php
<?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
// ...
use App\Extensions\BladeExtensions;
class AppServiceProvider extends ServiceProvider
{
// ...
public function register()
{
// ...
BladeExtensions::register();
}
}
https://stackoverflow.com/questions/18329541
复制相似问题