Dynamic carousel sliders are a popular and engaging way to showcase dynamic content such as images, products, or announcements in web applications. In Laravel 10, implementing a dynamic carousel slider enables developers to display and manage interactive sliders with changing content seamlessly.
In this tutorial, we’ll see the comprehensive process of creating a dynamic carousel slider in Laravel 10. This functionality empowers developers to build a flexible and customizable carousel slider that fetches content dynamically from the backend, providing a user-friendly and visually appealing way to present dynamic content.
Read More: How To Use SweetAlert Message Box in Laravel 10 Tutorial
Let’s get started.
Laravel Installation
Open terminal and run this command to create a laravel project.
composer create-project laravel/laravel myblog
It will create a project folder with name myblog inside your local system.
To start the development server of laravel –
php artisan serve
URL: http://127.0.0.1:8000
Assuming laravel already installed inside your system.
Create Database & Connect
To create a database, either we can create via Manual tool of PhpMyadmin or by means of a mysql command.
CREATE DATABASE laravel_app;
To connect database with application, Open .env file from application root. Search for DB_ and update your details.
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel_app DB_USERNAME=root DB_PASSWORD=root
Setup Model and Table Migration
Open project into terminal and run this command,
php artisan make:model Slider -m
It will create a model file app/Models/Slider.php and a migration file xxx_create_sliders_table.php inside /database/migrations folder.
Open migration file and write this complete code into it,
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('sliders', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->string('url');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('sliders');
}
};Run Migration
Next, you need to migrate migration files,
php artisan migrate
This command will create tables inside database.
Read More: How To Read PDF File Contents in Laravel 10 Example
Open app/Models/Slider.php and write this complete code into it,
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Slider extends Model
{
use HasFactory;
protected $fillable = [
'title',
'url'
];
}
Create Database Seeder Class
Back to project terminal and run this command,
php artisan make:seeder SliderSeeder
It will create a file database/seeders/SliderSeeder.php.
Open file and write this complete code into it,
<?php
namespace Database\Seeders;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use App\Models\Slider;
class SliderSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
$sliders = [
[
'title' => 'Image 1',
'url' => 'https://picsum.photos/seed/picsum/700/400'
],
[
'title' => 'Image 2',
'url' => 'https://picsum.photos/id/237/700/400'
],
[
'title' => 'Image 3',
'url' => 'https://picsum.photos/id/200/700/400'
]
];
foreach ($sliders as $key => $value) {
Slider::create($value);
}
}
}Next,
You have to run the seeder command to see this,
php artisan db:seed --class=SliderSeeder
Create Slider Controller
Next, you need to create a controller class,
php artisan make:controller SliderController
It will create a file SliderController.php inside /app/Http/Controllers folder.
Read More: Work with VUE 3 Axios Get Request in Laravel 10 Example
Open file and write this complete code into it,
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Slider;
class SliderController extends Controller
{
public function index()
{
$sliders = Slider::get();
return view('sliders', compact('sliders'));
}
}
Create Blade Template File
Go to resources/views folder and create a file with name sliders.blade.php
Open file and write this complete code into it,
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Carousel Slider in Laravel</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container">
<h3>Carousel Slider in Laravel by Online Web Tutor</h3>
<div id="carouselExampleIndicators" class="carousel slide" data-bs-ride="carousel">
<div class="carousel-inner">
@foreach($sliders as $key => $slider)
<div class="carousel-item {{$key == 0 ? 'active' : ''}}">
<img src="{{ $slider->url }}" class="d-block w-100" alt="{{ $slider->title }}">
</div>
@endforeach
</div>
<button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleIndicators"
data-bs-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">Previous</span>
</button>
<button class="carousel-control-next" type="button" data-bs-target="#carouselExampleIndicators"
data-bs-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Next</span>
</button>
</div>
</div>
</body>
</html>Add Route
Open web.php file from routes folder. Add this route into it.
//...
use App\Http\Controllers\SliderController;
//...
Route::get('sliders', [SliderController::class, 'index']);
Application Testing
Run this command into project terminal to start development server,
php artisan serve
URL: http://127.0.0.1:8000/sliders

That’s it.
We hope this article helped you to learn about How To Create Dynamic Carousel Slider in Laravel 10 Tutorial in a very detailed way.
If you liked this article, then please subscribe to our YouTube Channel for PHP & it’s framework, WordPress, Node Js video tutorials. You can also find us on Twitter and Facebook.
Read more