【问题标题】:Laravel 4 - Named Routes in RESTful ControllersLaravel 4 - RESTful 控制器中的命名路由
【发布时间】:2013-06-10 02:36:06
【问题描述】:

我正在尝试将命名路由与 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,所有其他路由都按预期工作。

这不应该吗?我在this post 找到了Route::controller() 的第三个参数。

【问题讨论】:

  • 先生。 Bruni,如果可以,请将您的 cmets 转换为答案。
  • 好的...我已将我的 cmets 转换为答案(并删除了 cmets)。

标签: php laravel laravel-4


【解决方案1】:

“路由名称”是内部的。

引用mentioned post:“您可以将一组方法名称及其对应的路由名称作为第三个参数传递给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-12-03
  • 2014-01-24
  • 2012-12-24
  • 2015-07-05
  • 1970-01-01
  • 2013-06-09
  • 2013-05-22
  • 2013-06-04
  • 1970-01-01
相关资源
最近更新 更多