我想从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。
请帮助我如何路由此文件夹文件。
感谢。
答案 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