Laravel View Composer with Repository 无法正常工作;

Laravel View Composer with Repository is not working;

我在 Laravel 项目中使用包含城市和国家/地区的包。我设置了一个存储库模式来使用这个城市数据。我的计划是将城市数据发送到注册视图或我想要的任何其他视图。在此处的示例中,我想发送到 project.create 页面。我测试了存储库,当我查看控制器时,我可以将数据传递给视图并使用 dd() 打印它。这没有问题。现在我想通过 viewcomposer 将这些数据发送到我想要的视图。

首先我写了一个ComposerServiceProvider.php文件如下

<?php

namespace App\Providers;

use Illuminate\Support\Facades\View;
use Illuminate\Support\ServiceProvider;

class ComposerServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap the application services.
     *
     * @return void
     */
    public function boot()
    {
        View::composer(
            'project.create',
            'App\View\Composers\LocationComposer'
        );
    }

    /**
     * Register the application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }
}

然后我写了composer文件,内容如下:

<?php

namespace App\View\Composers;

use App\Repository\Eloquent\LocationRepository;
use Illuminate\View\View;

class LocationComposer
{
    /**
     * @var LocationRepository
     */
    public $locationlist;

    /**
     * LocationComposer constructor.
     * @param LocationRepository $locations
     * @return void
     */
    public function __construct(LocationRepository $locations)
    {
        $this->locationlist = $locations->getAllCities();
    }

    /**
     * Bind data to the view.
     *
     * @param  \Illuminate\View\View  $view
     * @return void
     */
    public function compose(View $view)
    {
        $view->with('cities', $this->locationlist);

    }
} 

但是数据并没有传递到我想要的视图。

this is the error i got

我尝试过和做过的事情: -我通过应用程序配置注册了 composerserviceprovider。 -I 运行 php artisan config:clear -我试图发送到其他视图欢迎,注册等

我怀疑我没有在 composer 中正确调用存储库。

感谢您的帮助...

可能您没有将 App\Providers\ComposerServiceProvider::class 添加到您的 config/app.php 文件中。所有其他服务提供商都需要添加到 config/app.php 文件的 providers 数组中。