Laravel自定义屈折


Laravel custom inflection

我想为Laravel添加一个自定义屈折。在Rails中,这并不难做到,但我似乎无法在Laravel中找到如何做到这一点的答案。

如何在Laravel中添加我自己的屈折?

可能在做:

Illuminate'Support'Pluralizer::$irregular['subscribe'] = 'subscribes';

最好的加载位置是服务提供商:

<?php
namespace App'Providers;
use Illuminate'Support'ServiceProvider;
use Illuminate'Support'Pluralizer;
class PluralizationServiceProvider extends ServiceProvider {
    public function register()
    {
        Pluralizer::$irregular['octopus'] = 'octopi';
    }
}

并将其加载到您的app/config/app.hp:中

'App'Providers'PluralizationServiceProvider', 

这不再适用于当前的Laravel。现在你必须写:

<?php
namespace App'Providers;
use Illuminate'Support'ServiceProvider;
use Doctrine'Common'Inflector'Inflector;
class PluralizationServiceProvider extends ServiceProvider {
    public function register()
    {
        Inflector::rules('plural', ['irregular' => ['octopus' => 'octopi']]);
    }
}

还需要将providers文件夹添加到您的composer自动加载中。

"autoload": {
    "classmap": [
        ...
        "app/providers"
    ]
},