2

我正在尝试使用 Laravel 创建一个“逐步”表单。我遇到的麻烦是如何让用户“返回”并编辑先前提交的表单部分。

我正在做常规验证工作,这是表单字段的示例:

{{ Form::text('title', Input::old('title') }}

然后,如果该特定步骤的表单通过验证,它将作为数组保存在会话中,并且用户将被带到表单的下一部分。

我想要的是每个步骤上都有一个“返回”按钮,他们可以返回到上一步进行更改。问题是我有Input::old()输入的 value 参数。

我可以做的一件事是分配一个像“current”这样的变量并将其设置为该特定步骤的会话,因此我的输入语法如下所示:

{{ Form::text('title', (!empty($current)) ? $current['title'] : Input::old('title')) }}

有没有更好的方法来做到这一点?

4

2 回答 2

6

ShawnMcCool 的 Form Base Model 提供了一个很好的机制来处理输入值而不需要丑陋的三元组,并且还支持多页表单。我不会在这里列出任何代码,而是建议您通读捆绑包的示例:

https://github.com/ShawnMcCool/laravel-form-b​​ase-model#examples

于 2013-04-10T12:17:38.347 回答
1

我可能有一个多维数组,其中每个页面的输入存储在页码下。

$saved = Session::get('inputtedstuff');
$current = $saved['page1'];

然后,无论您在哪个页面上,都可以获取该页面以前的答案(如果有)。最后,您可以将所有答案放在一起,并将它们映射到一个平面数组以供进一步使用。

根据表单的复杂性,我还会考虑在一个页面中完成所有表单并使用 javascript 来显示每个部分。只是一个想法。

于 2013-04-10T09:28:34.800 回答