2017-10-16 14 views
0

CodeIgniterから来て、私はそれが何か新しいものになることを決め、Laravelに向かいました。私はフレームワークのシンタックスとそのクリーンさが大好きですが、複雑な単純なものがどれほど複雑であるかに圧倒されています。私はコントローラを持っていて、コントローラ内の関数にリンクしたいと思う。私が何をしても、私はこのエラーを受け取り続けます:Laravel 5.5:コントローラーが存在しません

ReflectionException in Route.php line 280: 
Class App\Http\Controllers\TasksController does not exist 

私はこの問題をGoogleで探知しましたが、私はそれを理解できないようです。私はすべてのことが正しいように思えますが、このフレームワークには全く新しいので、私は実際には分かりません。私は名前空間、ルート、そしてそのすべてを持っています。とにかく、ここに私のコードは次のとおりです。routes.phpの

Route::resource('tasks', 'TasksController'); 

リンク

<a class="nav-link" href="<?= url('tasks') ?>">Tasks</a> 

マイルートTasksController.php

<?php 

namespace App\Http\Controllers\Controller; 

use App\User; 
use App\Http\Controllers\Controller; 

class TasksController extends Controller 
{ 
    public function index() 
    { 
     $tasks = DB::table('tasks')->get(); 
     return view('tasks', ['tasks' => $tasks]); 
    } 
} 

はどんな答えをしている場合をありがとうあなたはもっと情報が必要です、そう言いなさい。

+2

てみ 'ルート::リソースファイルあなたTasksController.phpに

<?php namespace App\Http\Controllers; 

<?php namespace App\Http\Controllers\Controller; 

を変更してみてください( 'タスク'、 'コントローラ\ TasksController');'ので、フルクラスの名前空間/名前は 'App \ Http \ Controllers \ Controller \ TasksController'です。または、名前空間から余分な 'Controller'を削除してください。 – aynber

+0

ありがとう!余分な名前空間を削除するとそれが実行されました。私はどこかに間違っていたことを知っていた... :) –

答えて

2

デフォルトのLaravelインストールを使用している場合、現在のコントローラのディレクトリは存在しません。

+1

ありがとう!アインバーはすでにこの提案をしました。それはそれほど簡単ではないと信じられない。私はそれが夜の最後にあなたに何をするのかと思います:) –

0

あなたのネームスペース(コントローラファイル内)はApp\Http\Controllers\Controllerで、App\Http\Controllersである必要があります。

関連する問題