【问题标题】:How to initialize a component如何初始化一个组件
【发布时间】:2021-03-04 17:22:56
【问题描述】:

我正在使用 laravel 8。

我想创建一个组件“select-family”。这将是一个简单的选择。

我创建了这样的组件:

php artisan make:component SelectFamily

此命令创建了 2 个文件:

  • “视图/组件/select-family.blade.php”
  • “视图/组件/SelectFamily.php”

在SelectFamily中,我写道:

public function render()
{   
    return view('components.select-family', [
        'families' => Family::all()
    ]);
}

在刀片文件中,我有:

<select name="family" id="family">
<option value="">--all--</option>
@foreach ($families as $family)
    <option value="{{ $family->id }}">{{ $family->name }}</option>
@endforeach</select>

至少,我的组件是这样调用的:

@component('components.select-family')  

我有这个错误:

未定义变量:家庭

我尝试了很多东西都没有成功。

【问题讨论】:

    标签: laravel


    【解决方案1】:

    您应该在组件类中声明一个公共参数,它将自动注入到刀片中。

    public $families;
    
    public function __construct()
    {   
        $this->families = Family::all();
    }
    
    public function render()
    {   
        return view('components.select-family');
    }
    

    注意:

    如果您已部署在共享主机上并引发相同的错误,请在AppServiceProviderregister() 方法中引入您的组件或为此目的引入一个独立的提供程序。

    自定义介绍

    public function register()
    {
        Illuminate\Support\Facades\Blade::component(Component::class, 'component-name');
    }
    

    【讨论】:

      猜你喜欢
      • 2019-01-24
      • 1970-01-01
      • 2013-07-25
      • 2011-10-22
      • 2013-10-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多