1

我正在尝试将命名路由与 RESTful 控制器一起定义。在我的routes.php我有这个:

Route::controller('blog', 'BlogController', array('getIndex' => 'home'));
Route::controller('login', 'LoginController');

以及 BlogController 中的方法:

public function getIndex()
{      
    return View::make('blog.home');
}

当我尝试访问/home时,我收到NotFoundHttpException,所有其他路由都按预期工作。

这不应该工作吗?我在这篇文章中找到了 Route::controller() 的第三个参数。

4

1 回答 1

2

“路线名称”是内部的。

引用提到的帖子:“您可以将一组方法名称及其对应的路由名称作为第三个参数传递给Route::controller”...

因此,您的数组将getIndex方法附加到home 路由名称。但是“路由名称”是一回事,在应用程序内部,而不是外部可访问的 URL,因为您尝试使用它。

您可以使用以下内容将 URL 附加到命名路由:

Route::get('home', array('as' => 'home'));

在这种情况下,第一个“home”是 URL 部分,而第二个“home”是路由名称(您附加到“getIndex”方法)。请参阅http://laravel.com/docs/routing#named-routes

使用命名路由,我们可以为路由使用标识符(例如,名称“dashboard”),但稍后,在任何时候,我们都可以通过任何 URL 访问它,而无需在整个路径中进行全局搜索和替换整个应用程序代码。我们可以将“主”或“主”URL 路径附加到名为“仪表板”的路由......所以......“路由名称是内部的”。

于 2013-06-10T03:40:26.023 回答