2016-10-19 8 views
0

私はlaravel 5.2.*にパッケージを追加しようとしていますが、パッケージルートはエラーClass FormController does not existを返します。私はパッケージルートがコントローラクラスをロードしないのはなぜですか?

Package Directory > packages\js\form\src

パッケージをしようとしている何

>プロバイダ

namespace Js\Form; 
use Illuminate\Support\ServiceProvider; 
class FormServiceProvider extends ServiceProvider 
{ 
    public function boot() 
    { 
    } 

    public function register() 
    { 
     include __DIR__.'/routes.php'; 
     $this->app->make('Js\Form\FormController'); 
    } 
} 

パッケージ>コントローラー

namespace Js\Form; 
use App\Http\Controllers\Controller; 
use Carbon\Carbon; 
class FormController extends Controller 
{ 
    public function index() 
    { 
     echo 'test'; 
    } 
} 

パッケージ>作曲

{ 
    "name": "js/form", 
    "description": "this is form", 
    "type": "project", 
    "license": "xyz", 
    "minimum-stability": "dev", 
    "require": {} 
} 

メインコンポーザー

"autoload": { 
     "classmap": [ 
      "database" 
     ], 
     "psr-4": { 
      "App\\": "app/", 
      "Js\\Form\\": "packages/Js/Form/src" 
     } 
    } 

パッケージ>ルート

Route::get('/contactus', '[email protected]');

/app.php

Js\Form\FormServiceProvider::class,

設定では、私もcomposer dump-autoloadは、このURL http://localhost/project/public/index.php/contactusが、その上映次のエラーを開こうとしましたが、このコマンドを実行します。

Class FormController does not exist

私はそれを修正することができ、問題がどこにあるか誰も私を導くことができます。私は誰かが私を導くなら、感謝したいと思います。あなたに

+0

私はエラーがから来ていると仮定していますルータ機能。FormControllerを指定するだけで、デフォルトの場所(app/http/controllers)が表示されますが、フォームコントローラがある場所ではありません。 – tam5

+0

@tam私はあなたに同意しました。コントローラ名。だから私はどのように修正することができます。あなたは何か考えていますか? –

+0

このコマンドを試すことができます CLIでphp artisan config:clearを実行してください。場合によっては、キャッシュから設定が行われることもあります。 –

答えて

2

ありがとうございエラーがこの行から来ている:

Route::get('/contactus', '[email protected]'); 

デフォルトでは、ルータはApp\Http\Controllersに対するコントローラのように見えますが、あなたのFormControllerがどこにあることではありません。

これを修正するには、FormControllerApp\Http\Controllersから相対、または絶対パスを提供することであった場所を指定する必要があります。

あなたFormControllerApp\FormControllerに名前空間れた場合たとえば、あなたが書くことができる:

Route::get('/contactus', '\App\Form[email protected]'); 

だから、あなたの場合には、それは次のようになります。

Route::get('/contactus', '\Js\Form\[email protected]'); 
+0

うわー、私は答えとその働きに従った。ありがとうございます+1 –

関連する問題