2017-08-11 4 views
0

フィールドがmap_zipsのモデルがあり、そのフィールド内にカンマ区切りの5つの郵便番号を格納したいと考えています。Laravel 5:モデルに含まれていないフォームフィールド

データベースモデルに格納する前に、値を連結して1つの列のDBに格納する5つの異なるフォームフィールドが必要です。

ビュー内で複数のフォームフィールドを作成し、フォームフィールドを検証し、前記フォームフィールドで何を行う必要があるか、保存するにはどうすればよいですか?それ以外にも、編集/更新ページを読み込む際にも分割する必要があると思います。

5つの異なる列(各ジップごとに1つずつ)を作成するのが最も簡単な方法だと思いますが、Laravelの限られた知識を広げるためにこれを行う方法を学びたいと思います。私のReportsController.php私の現在の店の方法で

は次のようになります。

public function store(Request $request) { 
    $this->validate($request, $this->rules); 
    $user      = Auth::user(); 
    $report     = $request->all(); 
    $report['user_id']  = $user->id; 
    Report::create($report); 
    return redirect('/reports')->with('status', 'Report created'); 
} 

答えて

2

私はあなたが質問undertand場合、私は知りませんが、あなたが試すことができますこの:

あなたが5つの入力フィールドをしたい場合は、あなたのあなたはこれを試すことができます表示、あなたはあなたの検証と値がお店functiにpropperly

@if (count($errors) > 0) 
    <div class="alert alert-danger"> 
     @foreach ($errors->all() as $error) 
      <div>{{ $error }}</div> 
     @endforeach 
    </div> 
@endif 
@if(session()->has('message')) 
    <div class="alert alert-success"> 
     {{ session()->get('message') }} 
    </div> 
@endif 
<form action="{{ route("route_to_store_function") }}" method="post"> 
    <input type="text" name="zip1"> 
    <input type="text" name="zip2"> 
    <input type="text" name="zip3"> 
    <input type="text" name="zip4"> 
    <input type="text" name="zip5"> 
    <button type="submit"></button> 
</form> 

その後、保存されたことを確認するために返されたメッセージからエラー・メッセージが表示されます、フィールドを連結するには、レポートを保存し、前のページにメッセージを返す:あなたはこの試みることができるレポート編集したいときに

public function store(Request $request) { 
    $this->validate($request, [ 
     'zip1' => 'required',// you can add more validations here 
     'zip2' => 'required', 
     'zip3' => 'required', 
     'zip4' => 'required', 
     'zip5' => 'required', 
    ]); 

    $report = new Report(); 
    $report->map_zips = $request->zip1.",".$request->zip2.",".$request->zip3.",".$request->zip4.",".$request->zip5; 
    $report->save(); 

    return redirect()->back()->with('message', 'The report has been stored succesfully'); 
} 

public function edit($id) { 
    $report = Report::find($id) 

    $zipCodes = explode(",", $report->map_zips); 
    return view('edit_report_view', compact("report", "zipCodes")); 
} 

をそして、あなたに編集表示:

<form action="{{ route("route_to_update") }}" method="post"> 
    <input type="hidden" name="id" value="{{ $report->id }}"> 
    <input type="text" name="zip1" value="{{ $zipCodes[0] }}"> 
    <input type="text" name="zip2" value="{{ $zipCodes[1] }}"> 
    <input type="text" name="zip3" value="{{ $zipCodes[2] }}"> 
    <input type="text" name="zip4" value="{{ $zipCodes[3] }}"> 
    <input type="text" name="zip5" value="{{ $zipCodes[4] }}"> 
    <button type="submit"></button> 
</form> 
+0

これはトリックを行う必要がありますように見えます、ありがとうございます! –

関連する問題