#laravel
#laravel
Вопрос:
Я работаю с laravel 8.
Я хочу создать компонент «select-family». Который будет простым выбором.
Я создал компонент таким образом :
php artisan make:component SelectFamily
Эта команда создала 2 файла :
- «views/components/select-family.blade.php «
- «View/Components/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')
У меня такая ошибка :
Неопределенная переменная: семейства
Я много чего перепробовал, но безуспешно.
Ответ №1:
Вы должны объявить общедоступный параметр в классе component, и он будет автоматически введен в блейд.
public $families;
public function __construct()
{
$this->families = Family::all();
}
public function render()
{
return view('components.select-family');
}
УВЕДОМЛЕНИЕ:
Если вы развернули на общем хосте, и он выдает ту же ошибку, введите свои компоненты в register()
метод AppServiceProvider
или введите автономного поставщика для этой цели.
Пользовательское введение
public function register()
{
IlluminateSupportFacadesBlade::component(Component::class, 'component-name');
}