2016-09-28 5 views
1

フォームの中にどのボタンが押されているかを評価する小さな条件を作成しました。これは正常に動作し、適切なメソッドを起動し、適切なデータをDBに書き込みますが、リダイレクトは機能しません。それはDBにsaves()して、単にPOSTルートとして指定されたページにとどまります。複数のフォームボタンを評価するために条件付きを使用する場合のredirect()の問題

私はこの問題は私の条件と$thisの使用とは何かを持っている疑いがあります。ここで

は私のcheck_submit方法である:

public function invoice_add_item() 
{ 
    $input = Request::all(); 
    $invoice_items = new Expense; 
    $invoice_items->item_id = $input['item_id']; 
    $invoice_items->category_id = $input['category']; 
    $invoice_items->price = $input['price']; 
    $invoice_items->store_id = $input['store']; 

    if(Input::has('business_expense')) 
    { 
     $invoice_items->business_expense = 1; 
    } 
    else{ 
     $invoice_items->business_expense = 0; 
    } 
    $invoice_items->save(); 
    return redirect('/'); 
} 

はおそらく、私のルートでこれを処理するより良い方法があります(:ここ

public function check_submit() 
{ 
    if(!is_null(Input::get('add_to_invoice'))){ 
     $this->invoice_add_item(); 
    } elseif(!is_null(Input::get('complete_invoice'))) { 
     $this->invoice_complete(); 
    } 
} 

は、私は現在、テストしてい2つの方法の一つでありますweb)ファイルがありますが、私はこれについてどうやって行くのか分かりません。

答えて

1

check_submit()メソッドにreturnを追加する必要があります。いっそ

public function check_submit() 
{ 
    if(!is_null(Input::get('add_to_invoice'))){ 
     return $this->invoice_add_item(); 
    } elseif(!is_null(Input::get('complete_invoice'))) { 
     return $this->invoice_complete(); 
    } 
} 

のようなものは、おそらく、

+1

恐ろしいもの(またはエラーメッセージで、いくつかのセッションフラッシュ変数で)、それに基づいてinvoice_add_item()とにブール値を返す正しい場所にユーザーをリダイレクトする必要があります完璧に動作します、ありがとう!それは私に頭痛を与え始めていた!素晴らしい一日/夜になりましょう! – SGouws

関連する問題