Update Composer To Latest Version

composer self-update

Install Laravel Installer

composer global require laravel/installer

Create a new project

laravel new training --git --jet --stack=livewire --teams --pest

Run a Project

php artisan serve

Create a controller:

php artisan make:controller WelcomeController --invokable

User Management

Create a resource controller

php artisan make:controller UserController --resource --model=User

Eloquent

User::all();
User::get();
User::first();
User::paginate();

in DatabaseSeeder

\App\Models\User::factory(1000)
    ->withPersonalTeam()
    ->create();

Wise to run Vite during making changes to view. But make sure to install all dependency packages:

npm install

Then run Vite during development:

npm run dev

Change Route to use uuid instead of id

Create a column called uuid:

$table->uuid('uuid');

Change Route Key to use uuid field instead of id.

/**
 * Get the route key for the model.
 *
 * @return string
 */
public function getRouteKeyName()
{
    return 'uuid';
}

uuid field can be create automatically using creating event in boot up of the model. Reference here

Install DebugBar for Debugging Purpose

composer require barryvdh/laravel-debugbar --dev

Security: Authorization

php artisan make:policy UserPolicy --model=User

Package: Permission

composer require spatie/laravel-permission
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider"
php artisan migrate

Add HasRoles trait to \App\Models\User class:

use Spatie\Permission\Traits\HasRoles;

class User extends Authenticatable
{
    use HasRoles;
}

Run Migration with Seeding

php artisan migrate:fresh --seed

Assignment

Create CRUD for POST.

php artisan make:model Post -mf