2016-12-27 21 views
2

長い変数名のためにこのエラーが発生します。 変数名を上書きするにはどうすればよいですか?RouteCompilerのLaravel DomainExceptionルート名に32文字以上の文字列を含めることはできません。

私は非常にリソース名を保持したいと思います。

マイルートである:ここでは

Route::resource(
    'computer-software-version-installation', 
    'Web\Model\ComputerSoftwareVersionInstallationController' 
); 

答えて

2

私は修正するために何をしたかである:

Route::resource(
     'computer-software-version-installation', 
     'Web\Model\ComputerSoftwareVersionInstallationController', 
     ['parameters' => [ 
      'computer-software-version-installation' => 'installation' 
     ]] 
    ); 

これはなぜ必要なのか?

Illuminate\Routing\Router resource methodルートを登録するための新しいResourceRegistrarを作成します。

はLaravel 5.3については、こちらを拡張答えです。このメソッドは$optionsパラメーターです。

Illuminate\Routing\ResourceRegistrar register methodは、パラメータが$options['parameters']値に属性を設定し、入力パラメータとして$nameの最後の部分を使用して$base変数の値を設定するgetResourceWildcardをコールします。

Illuminate\Routing\ResourceRegistrar getResourceWildcard methodは、パラメータが存在するかどうかを調べて、存在する場合はそれを使用します。それ以外の場合は、文字列を作るためにいくつかの回転を行います。

'parameters'の配列に、ルート名とプレースホルダ名と等しい値のキーを渡すと、エラーを回避できます。

https://github.com/laravel/framework/issues/1001#issuecomment-134887584

が、シンフォニーの問題として、ここで反駁しているように見えた:getResourceWildcard

問題はここで言及されたのですか?

https://github.com/laravel/framework/issues/1001#issuecomment-212518768

うまくいけば、この答えは、周りの仕事で誰かを助けます。しかし、それは広範にテストされていないので、まだ問題があるかもしれません。

関連する問題