2016-05-02 12 views
0

私はコントローラのモデルを定義することに固執しています。私はstackoverflowでいくつかのソリューションを試してみましたが、何も役立ちません。EventController.phpのFatalErrorException 22:クラス 'App Event'が見つかりません

マイルート

Route::resource('/events' , 'EventController'); 

マイモデル:

<?php 

namespace App\Http\Controllers; 

use App\Event; 

use App\Http\Requests; 

use Illuminate\Http\Request; 

use View; 

use Validator; 

use Redirect; 

class EventController extends Controller 
{ 
    //Show lists of the events 
    public function index() 
    { 
     $events = \App\Event::all(); 

     return view('admins.events.index' , compact($events)); 
    } 
} 

:私のコントローラーEvent.php

<?php 

namespace App\Models; 

use Illuminate\Database\Eloquent\Model; 

class Event extends Model 
{ 
    protected $table = 'events'; 

    protected $hidden = ['remember_token']; 

    protected $guarded = array('id'); 

    protected $fillable = array(); 

    public static $rules = array(
     'name' => 'required|min:5', 
     'price' => 'required|number' 
    ); 
} 

問題は私のモデルに何かが欠けているようだと思います。エラーを指摘していただけますか?

あなたのお手伝いがありがとうございます。ありがとう。

+0

私はこれを試しました。また、作者のdump-autoloadも行いました。助けてください。 –

+0

あなたは '\ App \ Models \ Event :: all()'を意味します。 – Federkun

+0

誰かがコメントして削除したので、コメントが表示されます。私はあなたが書いたことを試みただけで、うまくいかないようです。 –

答えて

1

あなたのコントローラで

use App\Models\Event

代わりの

use App\Event 

を行う必要があります。

のインデックス方法では、Eventのみを使用してイベントを参照し、完全修飾名は\App\Eventではありません。

これをcomposer.jsonファイルに追加します。

"autoload": { 
    "classmap":[ 
     "app/" 
    ] 
} 

composer dumpを実行します。

このようにビューをロードすると、間違った方法でコンパクトが使用されます。

return view('admins.events.index' , compact('events')); 

これでいいはずです。

+0

作業:(EventController.phpライン22で –

+0

FatalErrorException: クラス "のApp \モデル\ Eventの –

+0

を見つけていない、あなたのモデルのディレクトリが作曲に自動的にロードする必要が –

1

あなたEventは、あなたがこのようなuse見えるようにする必要があるApp\Modelsである:

use App\Models\Event; 

をそうしないと、エラー、あなたが直面し、したがって、存在しないクラスを参照します。

また、あなた、あなたがuseを使用するとき、あなたは基本的に完全な名前空間を入力する必要性を回避するために、これを行うので、この(私は正しい名前空間ではなく、あなたの質問から1を使用しています):

$events = \App\Models\Event::all(); 

がに短縮することができますただ

$events = Event::all(); 

はまた、あなたがuseを修正しても、それは無効であるとuseはするつもりはないので、あなたがのいずれか(上記のコードでは、名前空間を修正しなければならないことに注意してください上記の例のように短いバージョンで呼び出しを置き換えてください)。

最後にcomposer dumpautoload事前のテストで傷つくことはありません。

+0

ありがとうございます。しかし、それは問題を解決しません。さて、それは言う:EventController.php行のFatalErrorException 'App \ Models \ Event'クラスが見つかりません –

+0

あなたのEvent.phpファイルは正しいディレクトリにありますか? –

+0

そうではありませんでした。今はapp/Modelsにあります。今度は別の問題を示します:ErrorException 7feaca4ff5192398d8179909026f6fc027df2533.php行6: 未定義の変数:イベント(表示:C:\ wamp \ www \ blog \ resources \ views \ admins \ events \ index.blade.php) –

関連する問題