带有存储库的 Laravel View Composer 不工作;
Posted
技术标签:
【中文标题】带有存储库的 Laravel View Composer 不工作;【英文标题】:Laravel View Composer with Repository is not working; 【发布时间】:2021-11-02 01:47:39 【问题描述】:我在 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。 -我跑了 php artisan config:clear -我尝试发送到其他视图欢迎,注册等。
我怀疑我没有将存储库正确地调用到作曲家中。
感谢您的帮助...
【问题讨论】:
什么确切不起作用?您尝试过什么来解决该错误? 数据不通过视图... 请通过编辑为您的问题添加所有说明。这也应该包含您解决问题的尝试 好吧,对不起,我以为我写了所有细节,我正在再次编辑它 【参考方案1】:可能您没有将App\Providers\ComposerServiceProvider::class
添加到您的config/app.php
文件中。所有额外的服务提供者都需要添加到config/app.php
文件的providers
数组中。
【讨论】:
以上是关于带有存储库的 Laravel View Composer 不工作;的主要内容,如果未能解决你的问题,请参考以下文章
使用带有分页视图的 Laravel View Composers 共享数据不起作用
带有本地存储库的 Spring Cloud Config Server 配置