在Laravel Blade中使用特性(Component)

时间:2019-01-02 08:40:28

标签: laravel laravel-blade

我尝试在laravel刀片中使用trait,但是没有用。

这是特质

namespace App\Repositories;

trait Residence
{
    public $country=['USA','Japan','Italy'];

    public $building=['duplex','condominium'];
}

我尝试像这样在刀片中使用

@inject('Residence', 'App\Repositories\Residence')

@foreach($Residence->country as $country)
    {{$country}}
@endforeach

@foreach($Residence->building as $building)
    {{$building}}
@endforeach

但是我得到Target [App\Repositories\Residence] is not instantiable.错误,有任何建议吗?(我使用的是laravel 5.7)

1 个答案:

答案 0 :(得分:0)

谢谢@Louis R提醒我们:“一个类应该使用一个特征”

所以我在一个类中使用该特征,然后注入到刀片中,它就可以了!

这是特质。

namespace App\Repositories;

trait Residence
{
    public $country=['USA','Japan','Italy'];

    public $building=['duplex','condominium'];
}

这是一个使用特质的类。

namespace App\Repositories;

Class ResidenceClassForBlade
{
    use Residence;
}

这是刀片:

@inject('Residence', 'App\Repositories\ResidenceClassForBlade')

@foreach($Residence->country as $country)
    {{$country}}
@endforeach

@foreach($Residence->building as $building)
    {{$building}}
@endforeach