Laravel 4子目录控制器没有加载Input类


Laravel 4 subdirectory controller doesn't load Input class

我是Laravel的新手,在子目录方面遇到了麻烦。我想在控制器文件夹中创建一个admin文件夹到目前为止它还在工作。但是当我尝试使用Laravel的Input类时,它说它找不到它。

我的路线:

Route::group(array('prefix'=> 'admin', 'before' => 'auth.admin'), function() {
   Route::resource('/users','Admin''UsersController');
   Route::resource('/products','Admin''ProductsController');
   Route::resource('/categories','Admin''CategoriesController');
   Route::resource('/orders','Admin''OrdersController');
   Route::resource('/reviews','Admin''ReviewsController');
});      

产品控制器:

 <?php namespace admin;
    class ProductsController extends 'BaseController {
    protected $layout = 'master';
        /**
     * Instantiate a new ProductsController instance.
     */
    public function __construct()
    {
        $this->beforeFilter('auth.admin');
    }
    /**
     * Display a listing of the resource.
     * GET /products
     *
     * @return Response
     */
    public function index()
    {
        $input = Input::all(); //here is where it finds the error

和作曲家。json自动装载:

"autoload": {
        "classmap": [
            "app/commands",
            "app/controllers/",
            "app/models",
            "app/database/migrations",
            "app/database/seeds",
            "app/tests/TestCase.php",
            "app/controllers/Admin"
        ]
    },

谢谢!

编辑:

我也尝试过使用Input(和'Input),它返回了"类'Facade'未找到"错误,当我尝试:

use 'Illuminate'Support'Facades'Facade;
use Input;

还是不行

编辑2:

现在使用:

use Illuminate'Support'Facades'Input;

并返回相同的错误。

编辑3:做了@ChristopherRathgeb建议的修改,现在找不到产品模型了。

答:

在做了@ChristopherRathgeb建议的修改并将'添加到视图和输入类(示例$input = 'Input:all();)后,它工作了!现在用动作方法重定向到这些控制器,我只是使用了action(admin'ProductsController),它工作了!

我感谢所有帮助我的人!

首先你可以使用基于命名空间的路由组:

Route::group(['namespace'=>'admin','prefix'=> 'admin', 'before' => 'auth.admin'],function() {
   Route::resource('/users','UsersController');
   Route::resource('/products','ProductsController');
   Route::resource('/categories','CategoriesController');
   Route::resource('/orders','OrdersController');
   Route::resource('/reviews','ReviewsController');
});

接下来输入的问题是您需要包含input facade:

删除:

use 'Illuminate'Support'Facades'Facade;
use Input;

并将以下内容添加到文件的顶部:

use Illuminate'Support'Facades'Input;

注意:这个答案使用php 5.4数组语法。如果您还在使用php 5.3,请将[]替换为array()。

Input类导入到您正在使用的名称空间中。

<?php namespace admin;
use 'Illuminate'Support'Facades'Input;
    class ProductsController extends 'BaseController {
.....

或者从其命名空间调用Input:

public function index()
{
    $input = 'Illuminate'Support'Facades'Input::all(); //here is where it finds the error