2017-08-11 54 views
0

我有一個字段名爲map_zips的模型,在該字段內部,我想存儲最多5個郵政編碼,逗號分隔。Laravel 5:表單字段不在模型中

我想有五個不同的表單字段,在存儲到數據庫模型之前,我將這些值連接在一起並將它們存儲在單列中的數據庫中。

如何在視圖中創建多個表單字段,驗證所述表單字段,執行需要在所述表單字段上完成的工作,將其存儲?除此之外,我想我還需要在加載編輯/更新頁面時將它們分開。

我想最簡單的方法是創建5個不同的列,每個zip一個,但我想學習如何做到這一點,以幫助擴展我對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個輸入字段

您視圖您可以試試這個,你會看到你的驗證和返回的消息的錯誤消息,以確認該值已經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> 

然後在您的商店functi上,串聯等領域,保存報表和具有消息返回到前一個頁面:當你想編輯你可以試試這個報告

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

看起來應該這樣做,非常感謝! –