从Laravel 4中的路线传递变量

时间:2013-12-12 09:59:34

标签: php laravel laravel-4

我有一个页面,我想显示天气。但天气取决于时区。 我不想做这样的路线:

Route::get('/weather/{timezone}', array('uses' => 'MyController@method'));

对我这样做更方便:

Route::get('/weather/Paris', array('uses' => 'MyController@method', 'timezone' => 'Europe/Paris'));

但我不知道该怎么做。这不是唯一的情况。一般的问题是:当我想根据我的网址将某些内容传递给控制器​​时,但它可能比用户ID或类似内容更复杂

有可能吗?

1 个答案:

答案 0 :(得分:2)

我不确定为什么更方便你在routes.php中硬编码路由及其相应的参数

简单地在{timezone}参数中接受城市名称并从查找表中获取相应的时区不是更好吗?

Route::get('weather/{city}', array('uses' => 'MyController@method'));

MyController ::方法函数定义:

function method ($city) {
// convert city name to timezone
$timezone = cityToTimezone($city);

// Use $timezone as you need to
}

无论如何,要回答你的问题,不。我没有在Laravel文档中发现过任何可能的建议。