Полный цикл в digital

Передача данных в классы компонентов

Можно передавать данные в классы компонентов, используя атрибуты HTML. Давайте для примера сделаем два атрибута:

resources/views/index.blade.php<x-alert type="error" message="text" />

Давайте теперь получим эти данные в классе компонента. Для этого для начала объявим наши атрибуты свойствами класса компонента:

app/View/Components/Alert.php<?php
class Alert extends Component
{
    public $type;
    public $message;
}

Теперь получим данные атрибутов в конструкторе:

app/View/Components/Alert.php<?php
class Alert extends Component
{
    public $type;
    public $message;
    public function __construct($type, $message)
    {
        $this->type = $type;
        $this->message = $message;
    }
}

Теперь можем сделать что-нибудь с полученными данными. Например, передадим их в представление:

app/View/Components/Alert.php<?php
class Alert extends Component
{
    public $type;
    public $message;
    public function __construct($type, $message)
    {
        $this->type = $type;
        $this->message = $message;
    }
    
    public function render()
    {
        return view('components.alert', [
            'type' => $this->type,
            'message' => $this->message,
        ]);
    }
}

Выведем переданные данные в представлении, но получить их вызвав данное представление в контроллере не получится:

resources/views/components/alert.blade.php<div class="alert alert-{{ $type }}">
{{ $message }}
</div>

Обратится в представление компонента можно из любого view используя слоты:

resources/views/index.blade.php<?php
<x-alert type="error" message="text"/>
Заполните форму уже сегодня!
Для начала сотрудничества необходимо заполнить заявку или заказать обратный звонок. В ответ получите коммерческое предложение, которое будет содержать индивидуальную стратегию с учетом требований и поставленных задач
Работаем по будням с 9:00 до 18:00. Заявки, отправленные в выходные, обрабатываем в первый рабочий день до 12:00.
Спасибо, ваш запрос принят и будет обработан!
Эйч Маркетинг