2015-05-25 123 views
0

我正在使用Laravel 4.2的應用程序進行工作。保存與提交表格

申請我的表單的用戶需要能夠保存他們的表單輸入以備後用,或提交。所以現在我有兩個不同的按鈕,保存和提交。

保存和提交之間的關鍵區別是狀態。當用戶保存他們的應用程序時,他們的應用程序狀態將被標記爲「正在進行中」,當他們提交他們的應用程序時,狀態將被標記爲「已完成」。

我的問題是:

在我的HTML表單的結構方面,如何保存和提交的申請區分?只要檢查他們是否填寫了所有要求的輸入就不可靠,因爲用戶可能希望稍後添加更多的輸入。

我試圖做一個窗體內的窗體,但很快意識到這是行不通的。

有沒有人有一個想法,如何做到這一點?

回答

1

您可以有兩個提交不同的名字和值的表單中的按鈕:

<button type="submit" name="action" value="save">Save</button> 
<button type="submit" name="action" value="submit">Submit</button> 

然後你可以在你的控制器動作檢查值:

public function postSubmission() 
{ 
    if (Request::get('action') == 'save') 
    { 
     // Save form for later 
    } 
    elseif (Request::get('action') == 'submit') 
    { 
     // Immediately submit form 
    } 
} 
0

比方說你的代碼是什麼像這樣(這是來自Laravel5,但據我記得它大多是相同的)。

{!! Form::open(array('route' => array('admin.editApplication'), 'method' => 'PATCH')) !!} 
    .... 
    <button type="submit" name="save" value="save">Save</button> 
    <button type="submit" name="edit" value="edit">Edit</button> 
{!! Form::close() !!} 

然後在你的控制器,如果該值在編輯設置(您可能需要調用它的東西比其他的編輯和保存)

public function editApplication(Request $request) { 
    if(isset($request->input('save')){ 
     // Your code to save here 
    }else{ 
     // Your code to edit here. 
    } 
} 
你可以這樣做(檢查