Asignar valores por defecto al la relación belongsTo

Si tenemos en nuestra vista un producto que pertence a una categoría, podemos acceder a el haciendo algo asi:

{{ $producto->categoria->nombre }}

Pero si el producto es borrado, o no se le asigna categoría alguna, recibimos un error, del tipo “property of non-object”.

Esto podríamos prevenirlo asi:

{{ $producto->categoria->nombre ?? '' }}

O podemos ir a la relación en Eloquent y darle valor por defecto

public function categoria()
{
    return $this->belongsTo('App\Categoria')->withDefault();
}

De ese modo la relación de la categoría(), retornara un valor vacio en el modelo Categoria, si el producto no la tuviera, entonces podemos añadir al modelo un valor por defecto, asi:

 public function categoria()
{
    return $this->belongsTo('App\Categoria')->withDefault(['nombre' => 'sin categoria]);
}

Y listo, esto es todo.

Espero modestamente que este artículo, sirva de ayuda a alguien.

Gracias.

Subir montañas hermana hombres……