2

Laravelで「ステップバイステップ」フォームを作成しようとしています。私が抱えている問題は、ユーザーが「戻って」フォームの以前に送信された部分を編集できるようにする方法です。

私は通常の検証を行っています。フォーム フィールドの例を次に示します。

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

次に、その特定のステップのフォームが検証に合格すると、これが配列としてセッションに保存され、ユーザーはフォームの次の部分に移動します。

私が欲しいのは、各ステップに「戻る」ボタンがあり、前のステップに戻って変更できるようにすることです。問題はInput::old()、入力の値パラメーターに問題があることです。

私ができることの 1 つは、「current」のような変数を割り当てて、その特定のステップのセッションに設定することです。そのため、入力の構文は次のようになります。

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

これを行うより良い方法はありますか?

4

2 に答える 2

6

ShawnMcCool の Form Base Model は、醜い 3 項式を必要とせずに入力値を処理する優れたメカニズムと、複数ページのフォームのサポートの両方を提供します。ここではコードをリストしません。代わりに、バンドルの例を読むことをお勧めします。

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

于 2013-04-10T12:17:38.347 に答える
1

各ページからの入力がページ番号の下に格納された多次元配列があるかもしれません。

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

次に、どのページにいても、以前の回答があればそのページを取得できます。最後に、すべての回答をまとめて、それらをフラットな配列にマップして、さらに使用することができます。

また、フォームの複雑さに応じて、フォームをすべて 1 ページにまとめて、JavaScript を使用して各部分を表示することも検討します。ちょっとした考え。

于 2013-04-10T09:28:34.800 に答える