配置/应用程序.php'providers' => [ // ... App\Providers\ViewServiceProvider::class, App\Http\View\Composers\AdComposer::class,],应用程序/Providers/ViewServiceProvider.php<?phpnamespace App\Providers;use Illuminate\Support\Facades\View;use Illuminate\Support\ServiceProvider;class ViewServiceProvider extends ServiceProvider{ public function register() { // } public function boot() { View::composer( 'layouts.sidebar', 'App\Http\View\Composers\AdComposer' ); }}应用程序/Http/View/Composers/AdComposer.php<?phpnamespace App\Http\View\Composers;use App\Ad;use Illuminate\View\View;use Illuminate\Support\Facades\Request;class AdComposer{ protected $ads; public function __construct(Ad $ads) { $this->ads = $ads; } public function compose(View $view) { $view->with('ads', $this->ads); }}我的问题是:传递给 App\Http\View\Composers\AdComposer::__construct() 的 TypeError 参数 1 必须是 App\Ad 的实例,给出的 Illuminate\Foundation\Application 的实例,在 E:\appoo\vendor\laravel\framework\ 中调用src\Illuminate\Foundation\ProviderRepository.php 第 208 行如何解决这个问题并传递 $ads 来查看?
1 回答

繁星淼淼
TA贡献1775条经验 获得超11个赞
从提供者数组中删除AdComposer
。
文档指出:
请记住,如果您创建一个新的服务提供程序来包含视图编辑器注册,则需要将该服务提供程序添加到 config/app.php 配置文件中的提供程序数组中。
它不会告诉您将作曲家添加到提供者数组中。
另外,如果您输入提示,App\Ad
您将得到一个空实例,以便您了解。
- 1 回答
- 0 关注
- 95 浏览
添加回答
举报
0/150
提交
取消