路由到子文件夹中的控制器在Laravel 4中不起作用

Cli*_*mes 8 php controller routes laravel laravel-4

当我遇到这个问题时,我正在将Laravel 3应用程序更新到Laravel 4 ...

我试过的路线:

Route::get('backend/login', 'backend/UserController@login');
Route::get('backend/login', 'backend.UserController@login');
Run Code Online (Sandbox Code Playgroud)

Fed*_*ngo 6

几个小时前我遇到了类似的问题,不得不用它做一些工作.

路线:

Route::group(array('prefix' => 'admin'), function() {
    Route::resource('/', 'admin\DashboardController');
});
Run Code Online (Sandbox Code Playgroud)

在"controllers/admin"中我放了DashboardController:

namespace admin;

use Illuminate\Support\Facades\View;

class DashboardController extends \BaseController {

    public function index()
    {
        return View::make('admin/dashboard');
    }

}
Run Code Online (Sandbox Code Playgroud)

这就是Laravel 4的诀窍.希望你觉得它很有用.:)


Pie*_*ucz 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
}
?>
Run Code Online (Sandbox Code Playgroud)

之后,在文件: app/routes.php 中:

<?php
Route::get('backend/login', 'Controllers\Backend\UserController@login');
Run Code Online (Sandbox Code Playgroud)

我不知道是否是更好的方法,但在这里工作。编辑和转储自动加载“composer.json”实际上似乎不起作用。

如果有人能改进这一点,他会让我很开心!:)

  • 嗯,示例代码给你在这里工作:/。不要忘记在添加/删除控制器后运行“composer dump-autoload”:[Docs/Controllers](http://four.laravel.com/docs/controllers) (2认同)