Configurar el nombre de las relaciones polimórficas de Laravel

Con este sencillo truco podemos ajustar el nombre de las relaciones polimorficas con tablas anidadas que por defecto van a tomar el nombre de la clase del modelo.

Lo primero es crear una tabla de relaciones, en nuestro caso vamos a incorporarla dentro del archivo config/app.php

// config/app.php
...
'post_types' => [
    'point' => 'App\Models\Point',
    'post' => 'App\Models\Post',
    'doc' => 'App\Models\Doc',
    'supplier' => 'App\Models\Supplier',
    'page' => 'App\Models\Page',
],
...

A Continuacion nos vamos a nuestro Service Provider, en nuestro ejemplo vamos a usar el que viene por defecto en la instalación del Laravel, app/Providers/AppServiceProvider.php


... use Illuminate\Database\Eloquent\Relations\Relation; ... public function boot() { ... Relation::morphMap(config('app.post_types')); ... }

Ya hemos terminado!