使用参数[架构]时,Laravel Route重定向到右侧控制器

时间:2016-01-15 12:37:07

标签: php laravel routes

因此,在同一模板上构建几个页面并通过AJAX加载内容。大部分内容都是表格。视图由步骤编号(1,2,3,4,5 ...... 32)

定义

以下是我建立路线的方式:

Route::get('onboarding/', [
    'as' => 'get-onboarding-start',
    'uses' => 'OnboardingController@getStart'
]);
Route::get('onboarding/{i}', [
    'as' => 'get-onboarding-step',
    'uses' => 'OnboardingController@getNextStep'
]);
Route::post('onboarding/{i}', [
    'as' => 'post-onboarding-step',
    'uses' => 'OnboardingController@postStepForm'
]);

现在控制器中的一个方法无法处理所有工作。意思是我需要重定向到基于$ i的另一种方法(步骤编号)。

如果我把一个关于开关案例的大博客$ i = 1,2,3,我担心读起来并不简单... 与此同时,我不想写32条不同的路线。

你会建议什么?

  1. 所有路线的硬编码含义:' onboarding / username'然后 '入职/电子邮件'等等......好的一点是,它是超级的 在视图中阅读简单,你知道下一步到底是什么 是......不需要检查数字对应的是什么。
  2. 立即捕获所有编码并重定向到控制器中的不同方法
  3. 更好的东西,超级易读,几行 代码......这是.... ??

1 个答案:

答案 0 :(得分:1)

如果这些步骤将继续保持原样,将来没有太多变化,我会选择第一个选项(拥有32条获得和32条路线)。这将使您的应用程序变得简单,如果您想要将参数或中间件应用于它们,您可以使用route groups。我在下面发布了laravel documentation

中的一个小代码示例
Route::group(['middleware' => 'auth'], function () {
    Route::get('/', function ()    {
        // Uses Auth Middleware
    });

    Route::get('user/profile', function () {
        // Uses Auth Middleware
    });
});