Laravel 的命名约定

Ste*_*eve 4 laravel

如果模型是Company它的表名,companies如果我们不覆盖protected $table属性。如果是Book,表名称是books. 那么为什么不companysLaravel 如何理解英语和语法呢?这些词列在哪里?

Joh*_*pit 5

Illuminate/Pluralizer负责获取英语单词的变形。它定义了一组不可数单词,例如:

public static $uncountable = [
    'audio',
    'bison',
    ...

    'species',
    'swine',
    'traffic',
    'wheat',
];
Run Code Online (Sandbox Code Playgroud)

内部Pluralizer使用doctrine/inflector它定义了实际的逻辑(由几个不同的作者从几个不同的 php 项目收集)来改变单词。Inflector具有单词复数单数化的一般规则,还定义了未变形或具有不规则复数的单词。

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',
    )
)
Run Code Online (Sandbox Code Playgroud)