且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何在Laravel中将包视图添加到主视图?

更新时间:2023-02-25 20:41:00

结果,我最终创建了自己的服务,如下所示:

As a result I ended up creating my own service as follow:

namespace App\Services;

class ComposerService {

    public function getLoadedPackages()
    {
        $folders = scandir(base_path('packages/author'));

        unset($folders[0]);
        unset($folders[1]);
        unset($folders[2]);

        return $folders;
    } 
}

这将读出我创建自己的软件包的正确文件夹

This will read out the correct folder I create my own packages is

之后,我更新了AppServiceProvider

After that I updated the AppServiceProvider

在启动功能中,我做了以下

in the boot function I did the following

 /** @var \App\Services\ComposerService $compiler */
    $compiler = new ComposerService();

    $packages = $compiler->getLoadedPackages();

    $compiled = '';

    foreach($packages as $package)
    {
        $compiled .= view('prefix-'.$package.'::cp.components.nav')->render();
    }

    View::share('main_nav', $compiled);

现在我可以在刀片中访问main_nav并使用它了

Now I can access main_nav in my blade and use it like

{!! $main_nav !!}

现在它会打印出我对每个软件包的所有导航视图.

It now prints out all my nav views that I have for each package.