Работа удаленно форум Работа удаленно форум Разработка и программирование Laravel новичку

Laravel новичку

Laravel новичку

 
  • 0 Голос(ов) - 0 в среднем
 
shat
Administrator
77
Сегодня, 06:57 AM
#1
В Laravel 12, когда речь заходит о "классовых компонентах", скорее всего, вы имеете в виду Blade Components. Они позволяют создавать часто используемые части вашего пользовательского интерфейса.
Вот как создать классовый Blade Component в Laravel 12 и передать в него массив из модели.
1. Создаем классовый компонент и Blade представление компонента
Код:

php artisan make:component CategoryList

           
Эта команда создаст два файла:

app/View/Components/CategoryList.php

И

resources/views/components/category-list.blade.php

Шаг 2: Наполнение классового компонента данными
Откройте файл
app/View/Components/CategoryList.php
и измените его следующим образом:
               
               
Код:

<?php

namespace App\View\Components;

use Illuminate\View\Component;
use App\Models\Category; // Импортируем модель Category

class CategoryList extends Component
{
    /**
     * Массив категорий, который будет передан в компонент.
     *
     * @var \Illuminate\Database\Eloquent\Collection
     */
    public $categories;

    /**
     * Create a new component instance.
     *
     * @return void
     */
    public function __construct()
    {
        // Получаем все категории из модели
        $this->categories = Category::all();
    }

    /**
     * Get the view / contents of the component.
     *
     * @return \Illuminate\Contracts\View\View|\Closure|string
     */
    public function render()
    {
        // Передаём массив $categories в представление компонента
        return view('components.category-list', ['categories' => $this->categories]);
    }
}
Шаг 3: Создание шаблона для классового компонента
Откройте файл
resources/views/components/category-list.blade.php
и добавьте следующий код:
               

               
               
Код:

<div>
    <h2>Список категорий:</h2>
    @if ($categories->count())
        <ul>
            @foreach ($categories as $category)
                <li>{{ $category->name }}</li> {# Предполагая, что у вашей модели Category есть поле 'name' #}
            @endforeach
        </ul>
    @else
        <p>Категорий пока нет.</p>
    @endif
</div>

  Шаг 4: Использование классового компонента на вашей странице
Теперь вы можете использовать ваш новый классовый компонент в любом из ваших Blade-шаблонов (например,
resources/views/welcome.blade.php
или в контроллере, который возвращает вид).
Используйте тег компонента:          

         

               
Код:

<x-category-list :categories="$categories" />

Все! Спасибо ИИ
Сообщение последний раз редактировалось: Сегодня, 07:20 AM shat.
shat
Сегодня, 06:57 AM #1

В Laravel 12, когда речь заходит о "классовых компонентах", скорее всего, вы имеете в виду Blade Components. Они позволяют создавать часто используемые части вашего пользовательского интерфейса.
Вот как создать классовый Blade Component в Laravel 12 и передать в него массив из модели.
1. Создаем классовый компонент и Blade представление компонента

Код:

php artisan make:component CategoryList

           
Эта команда создаст два файла:

app/View/Components/CategoryList.php

И

resources/views/components/category-list.blade.php

Шаг 2: Наполнение классового компонента данными
Откройте файл
app/View/Components/CategoryList.php
и измените его следующим образом:
               
               
Код:

<?php

namespace App\View\Components;

use Illuminate\View\Component;
use App\Models\Category; // Импортируем модель Category

class CategoryList extends Component
{
    /**
     * Массив категорий, который будет передан в компонент.
     *
     * @var \Illuminate\Database\Eloquent\Collection
     */
    public $categories;

    /**
     * Create a new component instance.
     *
     * @return void
     */
    public function __construct()
    {
        // Получаем все категории из модели
        $this->categories = Category::all();
    }

    /**
     * Get the view / contents of the component.
     *
     * @return \Illuminate\Contracts\View\View|\Closure|string
     */
    public function render()
    {
        // Передаём массив $categories в представление компонента
        return view('components.category-list', ['categories' => $this->categories]);
    }
}
Шаг 3: Создание шаблона для классового компонента
Откройте файл
resources/views/components/category-list.blade.php
и добавьте следующий код:
               

               
               
Код:

<div>
    <h2>Список категорий:</h2>
    @if ($categories->count())
        <ul>
            @foreach ($categories as $category)
                <li>{{ $category->name }}</li> {# Предполагая, что у вашей модели Category есть поле 'name' #}
            @endforeach
        </ul>
    @else
        <p>Категорий пока нет.</p>
    @endif
</div>

  Шаг 4: Использование классового компонента на вашей странице
Теперь вы можете использовать ваш новый классовый компонент в любом из ваших Blade-шаблонов (например,
resources/views/welcome.blade.php
или в контроллере, который возвращает вид).
Используйте тег компонента:          

         

               
Код:

<x-category-list :categories="$categories" />

Все! Спасибо ИИ

 
  • 0 Голос(ов) - 0 в среднем
Пользователи, просматривающие эту тему:
 1 Гость(ей)
Пользователи, просматривающие эту тему:
 1 Гость(ей)
Работа удаленно форум Работа удаленно форум Разработка и программирование Laravel новичку