Seb De Deyne
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…
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.
How to set up Inertia.js in Vite with Laravel.
Read more
How to set up TypeScript in Vite with Laravel.
Read more
How to set up React in Vite with Laravel.
Read more
How to set up Vue.js in Vite with Laravel.
Read more
How to set up Tailwind CSS in Vite with Laravel.
Read more
How to set up Tailwind CSS in Vite with Laravel.
Read more
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
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