お世話になっております。
当方Laravel5.5にてWebSiteを構築しております、
環境はmac OS Mojave10.14.2
ブラウザはGoogle Chrome バージョン: 71.0.3578.98になります。
-補足-
※今回Laravel collectiveを使用していますが、
使用しないケースでもヒントになるものがあれば、ご回答お待ちしております。
-補足以上-
やりたいこと
会員登録画面→確認画面の動きで、下記3の部分が今回やりたい部分です。
- モデルでデータベースから会員登録時の選択肢(都道府県の一覧や職業の一覧など)を取得
- コントローラーでモデルを呼び出し、選択肢を取得して入力画面viewに渡す
- プルダウンにてデータベースから取得した値を表示、ユーザーに選択させる
(プルダウンにはLaravel collectiveを使用、今回の)
0. 確認画面で、ユーザーが3で選択した値を表示する
課題
formのvalueは添字になっているため、
上記やりたいことの4でパスされる値が添字になってしまい、
結果4で表示される値も添字になってしまいます。
(本当は3で表示されている、配列の要素をそのまま表示したいです)
以下2つ方法考えましたが、1つ目の方法でよいのでしょうか…?
2つ目の方法は、確認画面からsubmitしてデータの保存が
できなくなってしまうかと思っています。
- 4の確認画面を表示するためのコントローラで、
入力画面から受け取った添字をデータベースから取得した配列と突き合わせして、
配列の要素を確認画面にわたす
0. 3の、データベースから取得した値を連想配列にして、要素と同じ文字列を添字にする
現状
入力画面のview
(「現在の職種」の選択項目を例として記載しました)
php
1 2 <div class="form-group row"> 3 <label for="occupation_type" class="col-4 col-form-label text-md-right">現在の職種</label> 4 <div class="my-1"> 5 {!! Form::select('occupation_type', $data->occupation_type, old('occupation_type'), ['require' => true]) !!} 6 @if ($errors->has('occupation_type')) 7 <span class="invalid-feedback"> 8 <strong>{{ $errors->first('occupation_type') }}</strong> 9 </span> 10 @endif 11 </div> 12 </div>
確認画面のcontroller
php
1 public function register_confirm(Request $request) 2 { 3 $user = $request->all(); 4 $request->session()->put($user); 5 return view('auth.main.register_confirm', compact('user','email_token')); 6 } 7
確認画面のview
php
1 <div class="form-group row"> 2 <label for="ccupation_type" class="col-md-4 col-form-label text-md-right">現在の職種</label> 3 <div class="col-md-6 no-padding"> 4 <span class="show_control">{{$user["occupation_type"]}}</span> 5 <input type="hidden" name="age" value="{{$user["occupation_type"]}}"> 6 </div> 7 </div>
宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー