Ankündigung

Einklappen
Keine Ankündigung bisher.

Laravel Eloquent - Felder auf DB mappen

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Laravel Eloquent - Felder auf DB mappen

    Hallo Forum,

    angenommen ich habe eine Tabelle "customers" in meiner MSSQL-DB, die im einfachsten Fall wie folgt aussieht:

    Tabelle: customers
    -----------------------------------------
    id
    customer_name
    ...
    -----------------------------------------

    Meinem Model "Customer" in Laravel möchte ich nun beibringen, dass "customer_name" = "customerName" ist.
    Ich möchte in meiner Programmierung gerne alles in CamelCase-Schreibweise haben und einige Felder in den Tabellen sind bspw. SnakeCase.

    Ich habe gesehen, dass hierfür jemand eine Erweiterung geschrieben hat:
    https://github.com/jarektkaczyk/eloquence-mappable

    Ein solches Mapping muss doch aber auch mit Bordmitteln möglich sein, oder nicht?

    Beste Grüße,
    Patrick


  • #2
    Hi,

    direkt eingebaut ist es in Laravel nicht, aber du kannst dir dein eigenes BaseModel erstellen und die getAttribute und setAttribute Methoden überschreiben. Dann wird camelCase in snake_case umgewandelt

    PHP-Code:
      class BaseModel extends Eloquent {     
    public function 
    getAttribute($key)     {
            return 
    parent::getAttribute(snake_case($key));    
    }      
    public function 
    setAttribute($key$value)     {
            return 
    parent::setAttribute(snake_case($key), $value);    
    }  

    Kommentar

    Lädt...
    X