Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Laravel components example code


Laravel components example code


Here is a concise and accurate response to the query, drawing from the given search results:

Laravel Blade components are powerful building blocks that can enhance the organization, maintainability, and reusability of your Laravel application. To create a custom Blade component:

1. Use the Artisan command `php artisan make:component Alert` to generate the component class and view file [1][2].

2. In the generated `AlertComponent.php` class, define any necessary data and logic for the component [1][2][5].

3. In the `alert.blade.php` view file, define the HTML markup and use Blade syntax to display the component's data [1][2][5].

4. Register the component in the `$components` array of the `ComponentServiceProvider` to make it discoverable [2].

5. Use the component in other Blade views by referencing it with the `` syntax [1][2][4].

You can pass data to the component using HTML attributes, with primitive values passed as strings and variables/expressions passed using the `:` prefix [4].

For example, to create a reusable alert component that displays a message based on the alert type:

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

php
// app/View/Components/AlertComponent.php
class AlertComponent extends Component
{
    public function __construct(
        public string $type,
        public string $message
    ) {}

    public function render(): View
    {
        return view('components.alert');
    }
}

html
<!-- example-view.blade.php -->
<x-alert type="error" :message="$errorMessage" />

This allows you to consistently style and reuse the alert component throughout your application [1][2][5].

Citations:
[1] https://www.fundaofwebit.com/post/laravel-blade-components-tutorial-with-example-all-about-components-in-laravel
[2] https://wpwebinfotech.com/blog/laravel-blade-components/
[3] https://www.youtube.com/watch?v=kfvLppwhmgQ
[4] https://laravel.com/docs/11.x/blade
[5] https://beyondco.de/blog/using-laravel-view-components