Skip to main content

Full-Page Components and Layouts

Premium
3:20

Text Version of the Lesson

In general, there are two main ways to use Livewire:

  • You build the full project with Laravel Controllers and use Livewire only for small dynamic elements on the pages
  • You use Livewire Components instead of Laravel Controllers, with so-called Full-Page Components

Your choice is yours; it's a personal preference. In this lesson, we'll see how to do it with Full-Page components.


Routes

Instead of mapping to the Controller in the Routes files, you need to map directly to the Livewire component.

routes/web.php:

use App\Livewire\CompanyCreate;
use App\Livewire\CompanyEdit;
 
// ...
 
Route::resource('companies', CompanyController::class);
 
Route::get('companies/create', CompanyCreate::class)
->name('companies.create');
Route::get('companies/{company}/edit', CompanyEdit::class)
->name('companies.edit');

Layout Files

Both Create and Edit forms can use the same layout for the HTML header and footer.

Livewire uses Blade components as an application layout. It must have a {{ $slot }} placeholder.

By default, Livewire uses the resources/views/components/layouts/app.blade.php Blade file for the main layout. So, we take the main HTML from our companies/create.blade.php and companies/edit.blade.php and put in that new layout file with a {{ $slot }} placeholder.

resources/views/components/layouts/app.blade.php

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Simple Form</title>
<script src="https://cdn.tailwindcss.com"></script>
</head>
<body class="flex items-center justify-center min-h-screen bg-gray-100">
{{ $slot }}
</body>
</html>

Then, we may delete three files...

The Full Lesson is Only for Premium Members

Want to access all of our courses? (30 h 09 min)

You also get:

55 courses
Premium tutorials
Access to repositories
Private Discord
Get Premium for $129/year or $29/month

Already a member? Login here

Comments & Discussion

No comments yet…

We'd Love Your Feedback

Tell us what you like or what we can improve

Feel free to share anything you like or dislike about this page or the platform in general.