Tengo dos modelos Cliente, Contacto Con la siguiente relación en el modelo de cliente:
public function latestContact () {
return $this->hasOne(Contact::class)->latest();
}
Ya me enteré aquí que el ayudante opcional es posible verificar si existe la relación al mostrar los datos. De lo contrario recibiría un "Tratar de obtener la propiedad de no-objeto" error.
optional($customer->latestContact)->address
Ahora me pregunto si hay una manera de verificar esto directamente dentro de la función del modelo. Preferiría solo llamar
$customer->latestContact->address
o algo como
$customer->getLatestContactAdress
y devuelve falso (o ningún resultado) si la relación no existe.
Gracias de antemano.
Respuestas
1 para la respuesta № 1Tú podrías definir un accesorio o una función dentro de su modelo padre.
Algo así en tu modelo de cliente:
public function getLatestContactAddress()
{
return optional($this->latestContact)->address;
}
Y llámalo así:
$customer->getLatestContactAddress();
0 para la respuesta № 2
Trate de usar la carga ansiosa
$customer = Customer::with("latestContact")->get();
Avísame si no funciona.