2016-12-14 4 views
1

У меня есть следующий контроллер в моем Laravel применения:Контроллер не найден ошибкой в ​​laravel. Зачем?

<?php 

namespace Http\Controllers; 
use App\Http\Requests; 
use App\Http\Requests\PrepareNoticeRequest; 
use App\Provider; 
use Illuminate\Http\Request; 

class NoticesController extends Controller { 

    public function create() { 
     $providers = Provider::lists('name' , 'id'); 
     return view('notices.create' , compact('providers')); 
    } 

} 

И следующий маршрут установлен в routes.php файле:

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

Теперь, когда я попал в следующий URL в браузере:

http://localhost:8080/laravelApp/public/notices/create 

Я получаю следующее сообщение об ошибке на моем экране:

enter image description here

Почему я получаю контроллер не найдена ошибка, когда у меня уже есть контроллер ??

+0

Ваш 'NoticeController' расширяет' Controller', который нельзя найти в larvel, вы должны включить его в свои операторы использования. –

+2

Вы пытались использовать пространство имен App \ Http \ Controllers; '? – piscator

ответ

4

Вы используете неправильное пространство имен:

namespace App\Http\Controllers; 

Кроме того, вы пропустили это:

use App\Http\Controllers\Controller; 

Вы должны использовать php artisan make:controller SomeController команду для создания контроллеров, если вы хотите, чтобы избежать такого рода проблем.

+0

Последнее не нужно, поскольку вы уже находитесь в пространстве имен' App \ Http \ Controllers' – Neat

+0

@Neat you're но это стандартная строка для контроллеров Laravel, созданная 'php artisan make: controller'. Дело в том, что некоторые контроллеры будут иметь другое пространство имен, например 'App \ Http \ Controllers \ Admin', поэтому рекомендуется держать эту строку в каждом контроллере. –

2

Попробуйте изменить значение пространства имен это:

namespace App\Http\Controllers; 

И добавьте следующую строку:

use App\Http\Controllers\Controller; 

Надеется, что это помогает.

+0

Последнее не нужно, поскольку вы уже находитесь в пространстве имен 'App \ Http \ Controllers' :) – Neat

Смежные вопросы