如何从Laravel软件包中注册View::composer以用于Laravel项目?
在我的包服务提供商中,我有一个带有路由/视图等的引导方法,这在注册函数中:
public function register()
{
$this->app->register(ComposerServiceProvider::class);
}
在作曲家服务提供程序中,我有:
public function boot()
{
View::composer(
'admin.*', ProfileComposer::class
);
}
这应该将 ProfileComposer 类加载到所有 admin.* 视图中,但它不起作用。它肯定是在将类加载为引导方法中的dd('Test');
在浏览器中显示"Test"消息,只是不应用视图编辑器。
我在Laravel文档中看不到有关从包加载View Composer的任何内容
此代码已从我的工作 laravel 项目中提取,可用作未来的包,但视图作曲家导致问题
我自己的一个软件包中的一个代码片段:
class ServiceProvider extends IlluminateSupportServiceProvider
{
public function boot(Factory $view)
{
$view->composer('template::name', ProfileComposer::class);
}
}
官方文档没有提到包,但它的工作方式完全相同。唯一的区别是文件系统上的位置,但使用正确的命名空间,您可以按照文档进行操作:https://laravel.com/docs/5.8/views#view-composers