PHPnews.io

Tim MacDonald on HasOne relationships in Laravel

Written by Sebastian De Deyne / Original link on Mar. 30, 2021

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…

sebastiandedeyne

« Play Up and Down the Neck - Personal Challenge: 100 Posts in 100 Days »