【问题标题】:Laravel custom inflectionLaravel 自定义变形
【发布时间】:2014-09-03 13:55:07
【问题描述】:

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

如何将我自己的变形添加到 Laravel?

【问题讨论】:

    标签: php laravel inflection


    【解决方案1】:

    大概是这样:

    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.php 中:

    'App\Providers\PluralizationServiceProvider', 
    

    【讨论】:

    • 感谢您到目前为止的回答!似乎是我正在寻找的东西。你能告诉我添加这行代码的最佳位置是什么吗?
    • 现在?在复数服务提供者中,并将其加载到您的 app/config/app.php 中。
    【解决方案2】:

    这不再适用于当前的 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']]);
        }
    
    }
    

    【讨论】:

      【解决方案3】:

      还需要将提供程序文件夹添加到您的作曲家自动加载中。

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

      【讨论】:

        猜你喜欢
        • 2018-10-16
        • 1970-01-01
        • 2021-04-11
        • 1970-01-01
        • 2020-05-17
        • 1970-01-01
        • 1970-01-01
        • 2020-01-18
        • 1970-01-01
        相关资源
        最近更新 更多