Laravel - 使用控制器而不是路由进行操作

Luk*_*den 0 php laravel

我今天已经完全下载了Laravel,并且喜欢看起来很糟糕,但是我对两件事情感到满意.

1)我喜欢控制器分析网址而不是使用路由的动作方法,它似乎可以更清晰地将所有内容保持在一起,但是我想说我想去

/account/account-year/
Run Code Online (Sandbox Code Playgroud)

我该怎么写这个动作函数?即

function action_account-year()...
Run Code Online (Sandbox Code Playgroud)

显然不是有效的语法.

2)如果我有

function action_account_year( $year, $month ) { ...
Run Code Online (Sandbox Code Playgroud)

并访问过

/account/account_year/
Run Code Online (Sandbox Code Playgroud)

将显示有关缺少参数的错误,如何使此用户友好/加载差异页/显示错误?

Wil*_*ley 8

您必须手动路由连字符版本,例如

Route::get('account/account-year', 'account@account_year');
Run Code Online (Sandbox Code Playgroud)

关于参数,它取决于您的路由方式.您必须接受路线中的参数.如果您使用完整控制器路由(例如Route::controller('account')),则该方法将自动传递参数.

如果您手动路由,则必须捕获参数,

Route::get('account/account-year/(:num)/(:num)', 'account@account_year');
Run Code Online (Sandbox Code Playgroud)

所以访问/account/account-year/1/2会这样做->account_year(1, 2)

希望这可以帮助.