> Faqs > Personalizar el nombre de un recurso en relación HasMany de Laravel Nova

Personalizar el nombre de un recurso en relación HasMany de Laravel Nova

En la documentación de Laravel Nova no explican cómo cambiar el nombre de un recurso, para ponerlo en español, en una relación HasMany.

Tengo clientes (customers) en una aplicación, que tienen direcciones de envío asociadas. Entonces puedo escribir la relación así

use Laravel\Nova\Fields\HasMany;

HasMany::make('ShippingAddresses');

Pero la idea es que el nombre de los las direcciones asociadas en esta relación no se vea en inglés. Sin embargo, no pone otras alternativas de parámetros para este método HasMany::make(). ¿Cómo lo puedo hacer?

Respuestas

En la documentación de Nova, un poco más abajo, cuando trata la relación BelongsTo, encuentras la respuesta, ya que los parámetros de configuración serían los mismos en ambos tipos de relación.

Podrías hacer algo como esto en tu relación HasMany.

HasMany::make("Direcciones de envio", "ShippingAddresses", "App\Nova\ShippingAddress")

Los parámetros son los siguientes:

  • "Direcciones de envio": es como deseas nombrar a este recurso en la relación HasMany. Por lo tanto lo colocarás en español.
  • "ShippingAddresses": Este es el nombre de la realación hasMany que debes de tener definida en el modelo "padre". Por ejemplo en tu caso, si estás hablando de "customers", tendrás el modelo en "App\Customer". En ese modelo tendrás definida la relación con sus direcciones de envío. Este es el nombre del método que define esa relación.
  • "App\Nova\ShippingAddress": esta es la clase que define el recurso de los las direcciones de envío para tus clientes, es decir, el recurso de Nova que permite editar o crear direcciones, tal como lo hayas definido en tus resources de Nova.
Miguel Angel
3295 146 215 17