当我遇到这个问题时,我正在将Laravel 3应用更新到Laravel 4 ......
我尝试过的路线:
Route::get('backend/login', 'backend/UserController@login');
Route::get('backend/login', 'backend.UserController@login');
答案 0 :(得分:6)
几个小时前我遇到了类似的问题,不得不用它做一些工作。
路线:
Route::group(array('prefix' => 'admin'), function() {
Route::resource('/', 'admin\DashboardController');
});
在“controllers / admin”中我放了DashboardController:
namespace admin;
use Illuminate\Support\Facades\View;
class DashboardController extends \BaseController {
public function index()
{
return View::make('admin/dashboard');
}
}
这就是Laravel 4的诀窍。希望你发现它足够有用。 :)
答案 1 :(得分:4)
目前,在Laravel 4 Beta 1中,您可以“只”?使用命名空间。
例如,在您的控制器文件中:app / controllers / backend / UserController.php
<?php namespace Controllers\Backend;
use Illuminate\Routing\Controllers\Controller;
class UserController extends Controller {
// Note extends Controller and not BaseController
// Your stuff
}
?>
之后,在文件中:app / routes.php:
<?php
Route::get('backend/login', 'Controllers\Backend\UserController@login');
我不知道是不是更好的方式,而是在这里工作。编辑&amp; dump-autoload“composer.json”似乎无法正常工作。
如果有人可以改善这一点,他会让我的一天! :)
答案 2 :(得分:2)
如果您要使用Laravel 4,也许您应该看一下:您可以指定要在一组路线上使用的命名空间,如下所示:http://www.laravel-tricks.com/tricks/route-group-namespacing
所以在你的样本中:
Route::group(array('prefix' => 'backend', 'namespace' => 'backend'), function()
{
Route::get('login', 'UserController@login');
});
它就像一个魅力:)
我一直在使用它,并且相当不错,它可以帮助您保持代码更清晰,更易理解。试一试!
答案 3 :(得分:0)
我建议做
Route::group(array('prefix' => 'backend'), function() {
// Responds to Request::root() . '/backend/user'
Route::resource('login', 'UserController');
});
在此处查看更多信息
Laravel 4 nested resource controllers Route::resource('admin/photo', 'PhotoController'); not working
答案 4 :(得分:0)
app / controllers目录中的我的管理员控制器
class AdminController extends BaseController {
/**.
* @return \AdminController
*/
public function __construct()
{
}
}
现在我在控制器文件夹中有一个名为admin的文件夹,即app / controllers / admin,我有另一个名为AdminDashboardController.php的控制器
class AdminDashboardController extends AdminController {
/**
* Display a listing of the resource.
*
* @return Response
*/
public function getIndex()
{
return View::make('admin/dashboard');
}
}
最后我的Route.php文件
Route::group(array('prefix' => 'admin'), function()
{
# Admin Dashboard
Route::controller('/', 'AdminDashboardController');
});
希望这会有所帮助......: - )
答案 5 :(得分:0)
如此处所述,使用Laravel 4.1,您可以指定要在一组路由上使用的命名空间,如下所示:http://www.laravel-tricks.com/tricks/route-group-namespacing
我一直在使用它,并且相当不错,它可以帮助您保持代码更清晰,更易理解。试一试!
答案 6 :(得分:-1)
你也可以将你的后端/管理面板放在一个包装中...以便思考:)