#laravel #eloquent / timacdonald.me

Tim MacDonald on HasOne relationships in Laravel

I’ve used HasOne relationships for 1:1 relationships, but those are rare. I haven’t considered using them to scope down relationships, like having one default payment method in a set of n methods.

<?php
 
class User extends Model
{
public function paymentMethods(): HasMany
{
return $this->hasMany(PaymentMethod::class);
}
 
public function defaultPaymentMethod(): ?HasOne
{
return $this->hasOne(PaymentMethod::class)
->whereDefault();
}
}
 
$user->defaultPaymentMethod;

After reading Tim’s post, I have a feeling there are some places where I needed this but didn’t think of it at the time…


#knowledge / nesslabs.com

Antilibrary: the perfect excuse to buy more books

From Anne-Laure Le Cunff:

An antilibrary is a private collection of unread books. […]

The goal of an antilibrary is not to collect books you have read so you can proudly display them on your shelf; instead, it is to curate a highly personal collection of resources around themes you are curious about. Instead of a celebration of everything you know, an antilibrary is an ode to everything you want to explore. […]

An antilibrary creates a humble relationship with knowledge. It reminds us that our knowledge is finite and imperfect.

I have more unread books than read, and at some point I decided to stop buying books until I read more of the ones I owned.

After learning about the antilibrary, I lifted my own restriction and started to buy books again. The result: I’ve been reading more than ever.


#laravel #vite #frontend #build-tools #inertia.js

Vite with Laravel: Using Inertia.js

How to set up Inertia.js in Vite with Laravel.

Read more


#laravel #vite #frontend #build-tools #typescript

Vite with Laravel: Using TypeScript

How to set up TypeScript in Vite with Laravel.

Read more


#laravel #vite #frontend #build-tools #react

Vite with Laravel: Using React

How to set up React in Vite with Laravel.

Read more


#laravel #vite #frontend #build-tools #vue

Vite with Laravel: Using Vue.js

How to set up Vue.js in Vite with Laravel.

Read more


#laravel #vite #frontend #build-tools #tailwind

Vite with Laravel: Using Tailwind CSS

How to set up Tailwind CSS in Vite with Laravel.

Read more


#laravel #vite #frontend #build-tools #blade

Vite with Laravel: Auto-refresh Blade views

How to set up Tailwind CSS in Vite with Laravel.

Read more


#laravel #vite #frontend #build-tools

Vite with Laravel

I’ve had an eye on Vite for a while. With a stable release out the door (2.0, as 1.0 never left the release candidate stage) it seemed like a good time to give it a shot.

Vite is a frontend build tool like webpack. Instead of bundling development assets, Vite serves native ES modules transpiled with esbuild from the dev server. This means there’s a lot less bundling to do, and results in a very fast developer experience. For production builds, Vite uses Rollup to bundle the assets.

Read more


#git

How to do a case sensitive file rename in git on macOS

Mac is case insensitive, Linux isn’t. This has caused me trouble in the past after deploying my code to an Ubuntu server.

If you rename a file on Mac, git won’t pick up any changes if you only change the case.

Read more