未找到Laravel 5.1嵌套控制器类

时间:2015-07-08 05:07:35

标签: php laravel laravel-5

Laravel文档清楚地描述了如果将控制器嵌套在文件夹中,如何更改路径。这看起来非常简单,但我仍然遇到错误。这是错误:

  

“Class App \ Http \ Controllers \ Input \ InputController不存在”

^该路径对我来说100%正确。是什么给了什么?

文件结构:
-Controllers
--auth
--input
--- InputController.php

路线:

Route::get('input', 'Input\InputController@getInput');  

InputController:

<?php namespace App\Http\Controllers;

use Illuminate\Http\Response;

class InputController extends Controller
{
    public function getInput()
    {
        return response()->view('1_input.input_form');
    }
}

感谢您的帮助!

3 个答案:

答案 0 :(得分:3)

更改Controller名称空间
namespace App\Http\Controllers

namespace App\Http\Controllers\Input

答案 1 :(得分:1)

  1. 名称空间需要更改为控制器所在的目录&#39; App \ Http \ Input &#39;
  2. 您需要使用 App \ Http \ Controllers \ Contoller 来拉入Controller,以便扩展它。

    {{1}}

答案 2 :(得分:0)

你应该尝试在你的终端(shell /提示符)的基础目录中运行几个命令:

composer dump-autoload

或者如果您没有将composer设置为可执行文件:

php composer dump-autoload

然后:

php artisan clear-compiled

这样你的laravel将“从头开始”再次准备一切,并且应该能够找到丢失的控制器类。

基本上laravel会生成一些额外的文件来更快地启动。如果您定义了一个新类,则它不会包含在该“已编译”文件中。这样你的类就应该“引入”框架。