"artisan route:list" 中作为闭包出现的控制器操作

Controller actions appearing in "artisan route:list" as Closures

我很茫然。我正在努力将应用程序升级到 Laravel 5.4,但在途中 (5.2.45) 我在几条路线上发生了一些奇怪的事情。我在 routes.php 中有 3 个 Route::controller() 调用,并且我已将它们全部转换为显式路由,因为 ::controller() 已被删除。现在来自 ::controller() 调用之一的新路由工作正常,来自其他两个调用的路由不正常,报告未找到操作。

查看示例,这是一个有效的示例:

\Route::get( 'account/edit', array( 'as'=>'account.edit', 'uses'=>'AccountController@getEdit' ) );

这里有一个不是:

\Route::get( 'recent/clear', array( 'as'=>'recent.clear', 'use'=>'RecentController@getClear' ) );

为了完整起见,这里是适用的控制器部分

class AccountController extends Controller {

    public function getEdit()
    {
        $roles = Role::getSelectList(); 
        $districts = District::getSelectList();
        return \View::make('accountedit', array( 'editUser' => \Auth::user(), 'roles'=>$roles, 'districts'=>$districts ));
    }
}


class RecentController extends Controller {

    public function getClear()
    {
        \Session::forget( 'recent' );
        return \Redirect::to('/main')->with( array( 'alerts'=>array( ErrorHelper::alert('success','Success','The Recent list has been cleared.') ) ) );
    }
}

当我 运行 artisan route:list 时,最直接的迹象就是发生了一些奇怪的事情。以下是结果中的两条适用行:

| Method    | URI           | Name                            | Action                                          |
+-----------+---------------+---------------------------------+-------------------------------------------------+
| GET|HEAD  | account/edit  | account.edit                    | App\Http\Controllers\AccountController@getEdit  |
| GET|HEAD  | recent/clear  | recent.clear                    | Closure                                         |

我不知道为什么 recent.clear 显示为闭包。有什么问题吗? FWIW,我在两个控制器上有相同的命名空间,它们都在 Http\Controllers 目录中。

哦,见鬼,使用与使用。用格罗弗的话来说,"I am so embarrassed..."