Laravel 拉维尔航线和';Class@Method';符号-如何将URL中的参数传递给方法

Laravel 拉维尔航线和';Class@Method';符号-如何将URL中的参数传递给方法,laravel,routes,Laravel,Routes,我是新来的拉雷维尔,所以我不确定的符号。Laravel文档显示可以通过以下方式传递参数: Route::get('user/{id}', function ($id) { return 'User '.$id; }); 这是非常直观的。下面是我正在进行的一个项目中的一些现有编码,可以在routes.php中找到: Route::get('geolocate', 'Api\CountriesController@geolocate'); # which of course will ca

我是新来的拉雷维尔,所以我不确定的符号。Laravel文档显示可以通过以下方式传递参数:

Route::get('user/{id}', function ($id) {
    return 'User '.$id;
});
这是非常直观的。下面是我正在进行的一个项目中的一些现有编码,可以在
routes.php
中找到:

Route::get('geolocate', 'Api\CountriesController@geolocate');
# which of course will call geolocate() in that class
下面是我想传递变量的代码:

Route::get('feed/{identifier}', 'Api\FeedController@feed');
问题是,如何将
$identifier
传递给类:

feed($identifier)
谢谢


还有一个问题,我如何标记{identifier}使其成为可选的,即简单地
/feed/
将匹配此路由?

您应该首先创建一个链接,如下所示:

/feed/123
然后,在控制器中,方法如下所示:

feed($identifier)
{
    // Do something with $identifier
}
feed()
{
    Request::get('identifier');
}
Laravel足够聪明,可以将路由器参数映射到控制器方法参数,这很好

或者,您可以使用
请求
对象返回
标识符
值,如下所示:

feed($identifier)
{
    // Do something with $identifier
}
feed()
{
    Request::get('identifier');
}

这两种方法都有各自的优点,我个人会使用第一个示例来获取一个或两个路由器参数,第二个示例用于我需要做更复杂的事情时。

因此,基本上,Laravel认为,通过声明
{identifier}
,我希望它作为一个变量并使其可用。我越来越喜欢Laravel:)是否有一个很好的链接,用于记录可以在
Route::get()
调用中使用的任何第三个参数?是的,您有您想要的那么多路由参数!(拥有大量的文档是一项艰巨的工作…)Laravel文档很棒-请求对象记录在这里:。我在我的示例中使用了facade,但是还有其他访问它的方法,这些方法在这里有文档记录。