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
数组中。
我在 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
数组中。