微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在Laravel中解决问题视图作曲家

如何解决如何在Laravel中解决问题视图作曲家

config / app.PHP

'providers' => [
     // ...
     App\Providers\ViewServiceProvider::class,App\Http\View\Composers\AdComposer::class,],

app / Providers / ViewServiceProvider.PHP

<?PHP

namespace 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'
        );
    }
}

app / Http / View / Composers / AdComposer.PHP

<?PHP

namespace 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);
    }
}

我的问题是:

TypeError参数1传递给 App \ Http \ View \ Composers \ AdComposer :: __ construct()必须是实例 App \ Ad的实例,给定的Illuminate \ Foundation \ Application实例,称为 在 E:\ appoo \ vendor \ laravel \ framework \ src \ Illuminate \ Foundation \ ProviderRepository.PHP 在第208行

如何解决此问题并传递$ ads进行查看?

解决方法

从providers数组中删除AdComposer

文档状态:

请记住,如果您创建一个新的服务提供商以包含您的View Composer注册,则需要将服务提供商添加到config / app.php配置文件中的providers数组中。

它不会告诉您将作曲家添加到providers数组中。

此外,如果您提示输入App\Ad,您将得到一个空实例,这是为了使您知道。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。