Web Development · WDC-62

Laravel with Vue.js Workshop

Laravel with Vue.js Workshop is a full-stack course in building web apps with Laravel 13 and Vue 3, from Eloquent, user accounts, REST and GraphQL APIs to single page apps with Vue Router, Pinia and Inertia. It suits PHP developers moving to a framework and anyone who looks after both front end and back end, and you leave with a shopping cart and a blog ready to deploy.

Updated
From 8,550 THB / person 9,500 −10% excl. VAT 7% · group rates available
PDFDownload the course outline
  • Duration30 hours · 5 days
  • FormatOnsite / live online
  • Next roundOn request
  • CertificateIncluded

Course overview

Laravel is a PHP framework that suits everything from small projects to large systems, whether you work alone or in a team, and it was designed from the start to work with Vue.js, either as a single page application calling an API or through Inertia using Laravel's own routing and controllers. Developers who already know some PHP can therefore grow into full-stack developers who handle both the front end and the back end with one toolset.

This course builds web applications with Laravel 13 and Vue 3. Learners install the tools, use routes, controllers, Blade and Vite, design databases with migrations and Eloquent, and build CRUD features with validation, login and user permissions. They create REST and GraphQL APIs, send email through queues and build a real-time dashboard, then write Vue 3, build a single page application with Vue Router and Pinia, and get to know Inertia. The course closes with shopping cart and blog workshops, testing and deployment to production. (5 days, 6 hours per day, 30 hours in total, Intermediate level.)

What you’ll gain

  • Install and structure a Laravel 13 project following the MVC approach
  • Design databases with migrations and use Eloquent with related data
  • Build CRUD features with validation, login and user permissions
  • Create a REST API with Sanctum and a GraphQL API with Lighthouse
  • Use email, queues and real-time broadcasting together with external services
  • Build a single page application with Vue 3, Vue Router and Pinia connected to Laravel
  • Choose between an API-driven SPA and Inertia to suit the job
  • Write tests and deploy a Laravel project to hosting or a server

Who this course is for

  • Anyone who wants to build web applications covering both the front end and the back end
  • PHP developers who have not used a framework yet, or who use another framework and want to move to Laravel
  • Developers who want to add Vue.js to the Laravel systems they maintain
  • IT managers who set the web technology direction for their team
  • General learners with some background in PHP and databases

Prerequisites

  • Confident use of a computer and the internet
  • Basic PHP, and some experience with MySQL or another database
  • Basic knowledge of HTML, CSS and JavaScript
  • A laptop that can run PHP, Composer, Node.js and VS Code, with permission to install software

Curriculum

Course Details

This course is the 2026 edition of the Laravel with Vue.js Workshop. It runs for 5 days, 6 hours per day (30 hours in total, 09:00-16:00), as lectures with labs and workshops. Intermediate level. This edition moves from Laravel 9 to Laravel 13, uses Vue 3.5 with script setup, Vue Router 5 and Pinia, uses Sanctum for APIs and adds Inertia with the Vue starter kit. The real-time topic moves from Firebase

to Laravel's own Reverb, GraphQL is condensed into one section and testing with Pest is added. The shopping cart and blog workshops and the deployment to production remain. The course overlaps in part with Basic Laravel for Beginners and Basic Vue.js 3 but focuses on connecting the two sides. Sending real email and deployment use the learner's own accounts and server. Learners take home a lab guide, source code for every lab and the workshop projects.

Day 1 Laravel 13 Basics

Section 1: Lab: Setting Up Tools and Installing Laravel 13

  • Getting to know Laravel, the MVC approach and reference documentation
  • Install PHP, Composer and Node.js with Laravel Herd on Windows and macOS
  • Create a project with the Laravel installer and choose a starter kit
  • Project structure, the .env file and commonly used Artisan commands
  • Lab: a starter project under Git used throughout the course

Section 2: Routes and Controllers

  • Create routes with parameters, groups and names
  • Create controllers and pass data to views
  • Resource controllers and route model binding
  • Read request data and return different kinds of response
  • Lab: product list and product detail pages

Section 3: Blade, Components and Vite

  • Blade layouts reused across the whole site
  • Blade components, slots and commonly used Blade directives
  • Show images and other assets through Vite
  • Style pages with the Tailwind CSS that ships with Laravel
  • Lab: a shop page template

Section 4: Lab: Databases with Migrations and the Query Builder

  • Configure a MySQL or SQLite connection
  • Create, change and roll back tables with migrations
  • Create test data with seeders and factories
  • Insert, read, update, delete and search with the query builder and raw SQL
  • Lab: a product and category database with sample data
Day 2 Eloquent, CRUD and User Accounts

Section 5: Eloquent ORM

  • Read, search, create, update and delete data with Eloquent
  • Soft deletes, restoring and permanent deletion
  • Casts, and accessors and mutators with the Attribute class
  • Query scopes for reusable conditions
  • Lab: manage product data with Eloquent

Section 6: Lab: Eloquent Relationships

  • One to one, one to many and many to many
  • Has many through and pivot tables
  • Polymorphic relationships, both single and many to many
  • Eager loading to fix the N+1 query problem
  • Lab: CRUD on data with several kinds of relationship

Section 7: Lab: Forms, Validation and File Uploads

  • Create and edit forms with a CSRF token
  • Validate data with form requests and show error messages
  • Sessions and flash messages after saving
  • Upload images with Storage and display them
  • Lab: a complete product CRUD with images

Section 8: Authentication, Middleware and User Permissions

  • Registration, login and email verification from a starter kit
  • Read the logged-in user's data
  • Create middleware and register it in bootstrap/app.php
  • Define roles and permissions with gates and policies
  • Lab: an admin area only administrators can open
Day 3 APIs, GraphQL and Real Time

Section 9: Lab: REST APIs with Laravel

  • Prepare an API with php artisan install:api and API routes
  • Shape responses with API resources and pagination
  • Error handling, findOrFail and the Accept header
  • Token authentication with Sanctum
  • Lab: a product API tested with Postman or Bruno

Section 10: GraphQL with Lighthouse

  • How GraphQL differs from REST and when it fits
  • The schema definition language, types, inputs and enums
  • Queries and mutations with Lighthouse directives
  • Protect data with @guard and test with GraphiQL
  • Lab: a GraphQL blog API

Section 11: Email, Queues and External Services

  • Send email with mailables and test with Mailpit
  • Configure a real email provider and your own domain
  • Move slow work into queues
  • Call external APIs with Laravel's HTTP client
  • Lab: an order confirmation email sent through a queue

Section 12: Lab: A Real-time Dashboard with Reverb

  • Broadcasting and WebSocket concepts
  • Install Reverb with php artisan install:broadcasting
  • Create events and public and private channels
  • Receive data in Vue with Laravel Echo
  • Lab: a sales dashboard that updates as soon as a new order arrives
Day 4 Vue 3 with Laravel

Section 13: Lab: Getting Started with Vue 3 in Laravel

  • Install Vue 3 with Laravel through Vite
  • Single file components and script setup
  • ref, reactive and computed
  • v-if, v-for, v-bind, v-on and v-model
  • Lab: a component that lists products from the API

Section 14: Components and SPAs with Vue Router

  • Props, emits and one-way data flow
  • Install Vue Router and use history mode
  • Set up a fallback route in Laravel to support the SPA
  • RouterLink, named routes and navigation guards
  • Lab: a multi-page SPA running on Laravel

Section 15: Lab: Pinia, Composables and Sanctum SPA Authentication

  • Manage state with Pinia
  • Move reusable logic into composables
  • Call the API with Axios and handle loading and errors
  • SPA login with Sanctum, session cookies and CSRF
  • Lab: member pages that require a login

Section 16: Inertia and the Vue Starter Kit

  • How Inertia works and how it differs from an API-driven SPA
  • The structure of the Vue starter kit with TypeScript, Tailwind and shadcn-vue
  • Pass data from controllers to Vue pages and submit forms back
  • Criteria for choosing between Blade, Inertia and a separate SPA
  • Lab: a category management page with Inertia
Day 5 Workshops, Testing and Deployment

Section 17: Workshop: A Shopping Cart with Vue and Laravel

  • Design the database and API for products, carts and orders
  • A shop and shopping cart SPA with Vue and Pinia
  • Checkout with validation in both Vue and Laravel
  • Notify the real-time dashboard of new orders
  • Present the work and review code together

Section 18: Workshop: A Blog with Laravel

  • Posts, categories and slugs for readable URLs
  • Manage images and media in articles
  • Comments and user profile pictures
  • Pagination, search and author permissions
  • Tidy article URLs and metadata so posts are easy to find

Section 19: Lab: Testing, Git and Code Quality

  • Write feature and unit tests with Pest
  • Test the API and user permissions
  • Git branches, pull requests and teamwork on GitHub
  • Use an AI assistant to write and review code, and verify the result with tests
  • Lab: a core test suite for the shopping cart

Section 20: Lab: Deploying to Production

  • Prepare shared hosting or a server and connect with SSH from Windows and macOS
  • composer install, npm run build and a production .env file
  • storage:link, config and route caching and folder permissions
  • Run the queue worker and Reverb on the server
  • Lab: put the blog live and check images and login

Schedule & training options

For individuals — public rounds

No public rounds are open right now. Join the waiting list and we will contact you first when the next round opens, or ask us on LINE. Or call 02-570-8449 or 088-807-9770

For organisations — in-house / private

  • Tailor the content to your team’s tools and projects
  • Your dates, at your office or live online
  • Quotation with tax ID for procurement
Corporate training quote

Instructors

Frequently asked questions

How do you use Vue 3 with Laravel through Vite?

There are two ways. The first is to choose the Vue starter kit when you create the project, which sets up Vue 3, Inertia, TypeScript and Tailwind for you. The second is to install vue and @vitejs/plugin-vue with npm, add the Vue plugin to vite.config.js alongside laravel-vite-plugin, create the app with createApp in resources/js and mount it in a Blade layout that loads the script with @vite. For a single page app, use Vue Router with createWebHistory and add a fallback route in Laravel so every URL returns the same page.

How does GraphQL differ from a REST API?

REST splits endpoints by resource and the server decides the shape of each response, so clients may get too much data or need several calls. GraphQL has a single endpoint where the client's query states exactly which fields it wants, fetching related data in one request. Mutations handle creates, updates and deletes, and a schema written in SDL defines the types clearly. In Laravel, the Lighthouse package is a common choice for GraphQL, while REST APIs use API resources together with Sanctum.

What is Pinia, and how is it used to manage state in Vue?

Pinia is the state management library recommended for Vue. It holds data that many components share, such as shopping cart items or the logged-in user. You create a store with defineStore, either with state, getters and actions or as a setup store using ref and computed, and use it in any component. When a value changes, every view using that store updates immediately, without passing props down through many layers.

Who is the Laravel with Vue.js Workshop course for, and what should I know beforehand?

It suits anyone who wants to build web applications covering both the front end and the back end, PHP developers who have not used a framework or want to move to Laravel, and developers who want to add Vue.js to existing systems. You should be able to write basic PHP, have some experience with MySQL or another database and know basic HTML, CSS and JavaScript. Please bring a laptop that can run PHP, Composer and Node.js.

What will I be able to do after the Laravel with Vue.js Workshop course?

You will be able to build web applications with Laravel 13 using routes, controllers, Blade and Eloquent, add user accounts and permissions, create REST and GraphQL APIs, send email through queues, build a real-time dashboard, create SPAs with Vue 3, Vue Router and Pinia, use Inertia, write tests and deploy to production, with shopping cart and blog projects to build on. Participants who complete the training receive a Certificate of Completion with its own number, which can be verified online.

Can the Laravel with Vue.js Workshop course be run in-house for our team?

Yes. It can be run in-house for your team, with the workshops adapted to your work, such as an admin system or membership system your organisation is developing. You can request a quotation from this page, or contact us on LINE @itgenius or by phone on 02-570-8449.

Related articles

Articles are published in Thai.