Tangible Bytes

A Web Developer’s Blog

Laravel Object Validation Closure

I’m using Laravel Inertia and the resulting form submission returns JSON objects - which I wanted to validate.

In my case I have a quiz - which has questions which in turn have answers and those answers have user-submitted responses.

If the CMS editor tries to delete answers which have responses this will result in an SQL referential integrity error - so I want a validation rule for each answer which says

If the answer object has property “deleted” and the database has responses for this answer - fail.

Read more ...

Helm Chart for Multi Domain Tls Cert

I’m running a service on Kubernetes that hosts multiple websites via different domains.

I had followed the default Helm Chart pattern and ended up with one TLS cert for all the sites.

This worked OK - except that I kept getting downtime when I needed to add a new domain.

So I refactored to have a different certificate for each site.

Read more ...

Laravel Frankenphp Octane Sail

My Laravel project is in part a headless CMS - this means it has and API that gets called by a frontend system - with around 10 API requests per page view.

We can cache some of that - but sometimes caches are empty and the site still has to be responsive.

The meant I needed to optimise my Laravel site and after a few experiments I found that using [Laravel Octane]](https://laravel.com/docs/12.x/octane) with FrankenPHP gave me the performance boost I needed without needing any significant code change.

Read more ...

Laravel Vite Wont Serve Build Files

This is a silly one.

I wanted to run Laravel in dev mode but using the compiled js and scss from npm run build via vitejs.

This usually works

but for some reason Laravel was trying to serve js/css from http://localhost:5173/@vite/client

a service I usually run - but I wanted to test the build stuff.

The solution is really simple but not well documented.

Read more ...