如何在Laravel 5中访问管理员控制器?

时间:2015-10-06 05:43:37

标签: php laravel-5

我想从admin文件夹访问admin控制器,但是我在使用它时遇到了一些麻烦。

routes.php文件

Route::group(array('namespace' => 'admin', 'prefix' => 'admin'), function() {
  Route::resource('ideas', 'AdminIdeaController');
});

AdminIdeaController.php

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

use App\Http\Controllers\Controller;
use Session;
use DB;
use Route;
use User;
use Hash;
use Auth;
use Input;
use Logout;
use Validator;
use Authenticatable;
use Redirect;
use Illuminate\Http\Request;

class AdminIdeaController extends BaseController
{

    public function index()
    {

        $data['idas'] = DB::table('ideas')
            ->get();


        return View('/admin/ideas.view',$data);
    }
}

文件夹路径:

Http
    Controllers
        Admin
            AdminIdeaController .php

错误:

ReflectionException in Container.php line 736:
Class App\Http\Controllers\AdminIdeaController does not exist

我按照laravel做了一切:5。

请帮助我如何路由此文件夹文件。

感谢。

3 个答案:

答案 0 :(得分:2)

您没有AdminIdeaController,但Admin\AdminIdeaController(请注意admin子文件夹)。所以,我认为你的路线应该是

Route::resource('ideas', 'Admin\AdminIdeaController');

答案 1 :(得分:1)

根据您的文件夹结构,您在路由中的命名空间是错误的。它应该Admin而不是admin这样

Route::group(array('namespace' => 'Admin', 'prefix' => 'admin'), function() {
  Route::resource('ideas', 'AdminIdeaController');
});

通过此路线,您的控制器应位于Admin文件夹内,您可以通过/admin/ideas路径访问此控制器

您可以使用类似

的命令在文件夹中创建控制器
php artisan make:controller foldername/controllername

如果要创建新文件夹并将控制器置于该文件夹中,可以使用此命令

php artisan make:controller foldername\\controllername 

答案 2 :(得分:0)

您只需要将文件夹的名称添加到名称空间,如此

namespace App\Http\Controllers\name of folder

然后运行:

composer dump-autoload

如果不起作用,请尝试使用以下命令创建新控制器:

php artisan make:controller nameOfFolder/nameOfController