2016-04-13 13 views
0

私は2つの提出ボタンの質問が以前に尋ねられたことを知っています、私はコーディングの例に従おうとしましたが、それは私のために働いていませんでした。Laravel 4 2つの送信ボタン

2つのボタンを持つフォームがあります(プレビュー&保存) 保存ボタンは、データをDBに保存するためのボタンです。 プレビューボタンは入力されたデータをビューに表示するためのもので、ユーザーは戻ることができます。すべてが正常であれば、データを保存できます。

どのボタンをクリックしても、空白のページで終わることがあります。http://localhost:8888/laravel4/public/backend/menubuilder/5 @weicheメソッドが正常に動作しているようです。

しかし私は運がありません。

私のフォームに提出:

{{ Form::open(array('url' => 'backend/menubuilder/'.$id, 'method' => 'POST'))}} 

私のルートは

Route::post('backend/menubuilder/{id}', array('uses' =>'[email protected]')); 
Route::resource('backend/menubuilder', 'MenuBuilderController'); 

私のコントローラがあるさ:

public function weiche($id) { 
    //check which submit was clicked on 
     if(Input::get('save')) { 
       $this->update($id); //if login then use this method 
     } elseif(Input::get('preview')) { 
       $this->preview($id); //if register then use this method 
     } 
} 

public function preview($id) 
{ 

    //Wenn angemeldeter Benutzer gleich aufgerufener id -> Anzeigen des dashboards für den entsprechenden User 
    $user = User::find($id); 
    $owner = (Auth::id() === (int) $id); 
    return View::make('backend/menubuilder/templatesview/tempone')->withUser($user)->withOwner($owner); 

} 


public function update($id) 
{ 
    //Aktualisieren der User Profile 
    $rules = array(
     // 'username' => 'unique:users', 
     'password' => 'min:6' 
    ); 
    $validator = Validator::make(Input::all(), $rules); 

    //Wenn Prüfung fehlgeschlagen, Weiterleitung mit Fehlermeldung 
    if ($validator->fails()) 
     return Redirect::to('backend/menubuilder/'.$id.'/edit')->withInput()->withErrors($validator->messages()); 


    $user = User::find($id); 
    //Wenn Eingabefeld ausgefüllt wird, aktualisere den bestehenden Wert mit dem eingegeben Wert 
    $user->gericht_1_mo = Input::get('gericht_1_mo'); 
$user->gericht_2_mo = Input::get('gericht_2_mo'); 
$user->preis_1_mo = Input::get('preis_1_mo'); 
$user->preis_2_mo = Input::get('preis_2_mo'); 

    if(Input::has('password')) $user->password = Hash::make(Input::get('password')); 
    $user ->save(); 
    Session::flash('message', 'Deine Wochendkarte wurde gespeichert'); 
    //return Redirect::to('backend/menuebuilder'.$id); 
    return Redirect::back()->withMessage('Wochendkarte gespeichert!'); 
} 

答えて

0

それはあなたがエラーを持っている可能性がありますがあるため、それはおそらく白ですweiche()メソッドは実際に何も返しません。単にupdate()/preview()メソッドを呼び出します。これに変更すると、残りのコードが正しいと仮定して動作します。 :)

if(Input::get('save')) { 
    return $this->update($id); //if login then use this method 
} elseif(Input::get('preview')) { 
    return $this->preview($id); //if register then use this method 
} 

それとも、少し短い:あなたはまだ白いページを取得する場合

return Input::get('save') ? $this->update($id) : $this->preview($id); 

、あなたがエラーを持っていて、ログに掘り起動する必要があります。がんばろう!

+0

完了!ありがとうございます。それはとても簡単かもしれません! –

+0

問題なし、うれしいことに助けてくれました。 :) –

+0

ジョエル、一番最後のもの。新しいタブ/ウィンドウでプレビューを開く方法私は{Form :: submit( 'preview'、['name' => 'preview'、 'target' => '_blank'])}}}これでうまくいきませんでした –

関連する問題