1

如何从 Laravel 包中注册 View::composer 以在 Laravel 项目中使用?

在我的包服务提供商中,我有一个带有路由/视图等的引导方法,这在注册函数中:

public function register()
    {

        $this->app->register(ComposerServiceProvider::class); 
    }

在 ComposerServiceProvider 我有:

   public function boot()
    {
        View::composer(
            'admin.*', ProfileComposer::class
        );
    }

这应该将 ProfileComposer 类加载到所有 admin.* 视图中,但它不起作用。它肯定是在引导方法中加载类,dd('Test');在浏览器中显示“测试”消息,而不是应用视图编辑器。

我在 Laravel 文档中看不到任何关于从包中加载 View Composers 的内容

此代码已从我的工作 laravel 项目中提取,以用作未来的包,但视图作曲家正在引起问题

4

1 回答 1

2

我自己的一个有效软件包的片段:

class ServiceProvider extends \Illuminate\Support\ServiceProvider
{
    public function boot(Factory $view)
    {
        $view->composer('template::name', ProfileComposer::class);
    }
}

官方文档没有提到包,但它的工作原理完全相同。唯一的区别是文件系统上的位置,但使用正确的命名空间,您可以按照文档进行操作:https ://laravel.com/docs/5.8/views#view-composers

于 2019-08-30T11:06:28.777 回答