adonis-lucid-polymorphic-ow

Adonis Lucid ^4.1.0 Polymorphic Relations Support - Customized for Ow Interactive

Usage no npm install needed!

<script type="module">
  import adonisLucidPolymorphicOw from 'https://cdn.skypack.dev/adonis-lucid-polymorphic-ow';
</script>

README

Adonis Lucid Polymorphic Ow

Suporte a relações polimorficas no adonis com opção de parametro (uso em relações criadas no laravel)

Instalação

  1. Instalar o pacote:
$ npm install adonis-lucid-polymorphic-ow
  1. Registrar o provider dentro do arquivo app.js na pasta start/app.js
const providers = [
  ...
  'adonis-lucid-polymorphic-ow/providers/PolymorphicProvider',
  ...
]
  1. Substituir o conteudo do arquivo BaseRelation.js na pasta node_modules/@adonisjs/lucid/src/Lucid/Relations com o conteudo do arquivo ./src/BaseRelation.js

Exemplo

Estrutura das tabelas

bakeries
    id - integer
    name - string

addresses
    id - integer
    address - string
    addressable_id - integer
    addressable_type - string

Estrutura do model para relação 1-1

  static get traits() {
    return ['@provider:Morphable']
  }

  address() {
    return this.morphOne(
      'App/Models/Address',
      'id',
      'addressable_id',
      'addressable_type',
      `App\\Models\\Dupan\\Bakery`
    )
  }

Estrutura do model para relação 1-N

  static get traits() {
    return ['@provider:Morphable']
  }

  address() {
    return this.morphMany(
      'App/Models/Address',
      'id',
      'addressable_id',
      'addressable_type',
      `App\\Models\\Dupan\\Bakery`
    )
  }

Creditos

O pacote foi originalmente escrito por: Evgeni Razumov

A customização foi criada por [Rodolpho Netto] (https://github.com/rodolphonetto)