Wenn das Modell Company
ist, lautet der Tabellenname companies
, wenn die Eigenschaft protected $table
nicht überschrieben wird. Und wenn es Book
ist, ist der Tabellenname books
. Warum also nicht companys
Wie versteht Laravel Englisch und Grammatik? Wo sind diese Wörter aufgeführt?Laravels Namenskonvention
Antwort
Illuminate/Pluralizer ist verantwortlich für die Beugung eines englischen Wortes zu bekommen. Es definiert eine Reihe von unzähligen Worten wie:
public static $uncountable = [
'audio',
'bison',
...
'species',
'swine',
'traffic',
'wheat',
];
Die Pluralizer
intern doctrine/inflector
verwendet, die die eigentliche Logik definiert (aus verschiedenen PHP-Projekten, die von verschiedenen Autoren gesammelt), ein Wort zu beugen. Inflector
hat allgemeine Regeln zu pluarize und singularize Wörter, und definiert auch Wörter, die nicht abgelenkt sind, oder haben unregelmäßige Pluralformen.
private static $plural = array(
'rules' => array(
...
'/(x|ch|ss|sh)$/i' => '\1es',
'/(?:([^f])fe|([lr])f)$/i' => '\1\2ves',
'/us$/i' => 'uses',
...
),
'uninflected' => array(
'.*[nrlm]ese', '.*deer', '.*fish', ..., 'people', 'cookie'
),
'irregular' => array(
'atlas' => 'atlases',
'axe' => 'axes',
'beef' => 'beefs',
...
'trilby' => 'trilbys',
'turf' => 'turfs',
'volcano' => 'volcanoes',
)
)
Laravel ist intelligent genug, um echte Wörter zu verwenden. Zum Beispiel wird media
Tabelle für Media
Modell verwendet.
Wenn Sie in den Quellcode sehen werden, werden Sie sehen, wie funktioniert Laravel Tabellenname baut:
return str_replace('\\', '', Str::snake(Str::plural(class_basename($this))));
Zuerst Laravel verwendet Pluralizer::plural()
Plural zu erstellen und dann wandelt sie in Schlangen Fall.
- 1. Wie funktioniert Laravels "withVariableName"?
- 2. Laravels eloquente Nachbearbeitungsabfrage
- 3. Laravels Concurrency Control
- 4. Namenskonvention hochladen
- 5. Getter Namenskonvention
- 6. Microsoft-Namenskonvention
- 7. BEM Namenskonvention
- 8. tensorflow Namenskonvention?
- 9. PHP Traits Namenskonvention?
- 10. Bevorzugte Namespace-Namenskonvention
- 11. Namenskonvention für groovige Skriptdateien
- 12. Rails Modul/Ordner Namenskonvention
- 13. Anwendung maven groupId Namenskonvention
- 14. JavaScript-Namenskonvention für Versprechen?
- 15. Python-Modulen Hierarchie Namenskonvention
- 16. Namenskonvention für winkelabhängige Modulabhängigkeiten
- 17. Namenskonvention in AutoMapper
- 18. Namenskonvention für Etiketten, Funktionen
- 19. Android Things Pin Namenskonvention
- 20. Namenskonvention für Posix-Flags
- 21. Bazel Ordner Namenskonvention
- 22. Namenskonvention für private Felder
- 23. Namenskonvention für Service-Methode
- 24. Namenskonvention für Rx-Erweiterungsmethoden?
- 25. Spring-Hibernate DAO Namenskonvention?
- 26. Android Studio Namenskonvention Refactoring
- 27. benutzerdefinierte Dimension Namenskonvention?
- 28. Datenbank-Datumsfelder - Namenskonvention
- 29. Variable \ Eigenschaft Namenskonvention
- 30. Rest API resouce Namenskonvention
Wenn Sie ein Modell erstellen Medien ich denke, Laravel wird standardmäßig "denken" die Tabelle für Medienmodell ist Medien .... ist das wahr oder falsch ?? – lewis4u
Nein, Laravel versucht standardmäßig, die 'media' Tabelle zu verwenden. –