在serviceprovider中的Laravel包开发注册刀片部分

时间:2018-02-28 12:48:08

标签: php laravel package service-provider

我正在为Laravel 5.6框架构建一个包。我想要 注册一个刀片@section('content');,以便开发人员可以 使用@yield('content');并将其添加到自己的应用程序中。

目前在我的Package serviceProvider中,我注册了我的观点:

public function boot()
{
    $this->loadViewsFrom(__DIR__.'/../resources/views', 'views');
}

但是,在向该目录中的视图添加@section('content');时。我无法在我的laravel应用程序视图中使用它(@yield('content');)。

我不想将我的包视图发布到Laravel应用程序视图中!

我怎么能实现这个目标?我希望我的问题是 配方精良。如果您有任何疑问,请告诉我。

谢谢!

1 个答案:

答案 0 :(得分:1)

使用yield()无法实现此目的,因此必须扩展刀片。

以下是一个示例,在您的ServiceProvider中

 Blade::directive('datetime', function ($expression) {
        return "<?php echo ($expression)->format('m/d/Y H:i'); ?>";
    });

现在您可以在视图中使用它。

@datetime(Your date)

希望这有帮助。