2017-10-11 30 views
0

私はすでに両方のフォームが同じです。 下記の私のコントローラは、作成と更新のための2つの別々の機能を示しています。 私はLaravelフレームワークを初めて使っています。私はアドレス帳プロジェクトに取り組んでいます。新しい作成するための は:作成と更新操作のためのlaravelコントローラファイルの作成と更新のための同じ機能の作成方法?

public function store(Request $request) // for creating new member 
{ 
    request()->validate([ 
     'name' => 'required', 
     'email' => 'required', 
     'address'=>'required', 
     'phone'=>'required', 
    ]); 
    Member::create($request->all()); 
    return redirect()->route('members.index') 
     ->with('success','Member created successfully'); 
} 
public function update(Request $request,Member $member) //for updating member info 
{ 
    request()->validate([ 
     'name' => 'required', 
     'email' => 'required', 
     'address'=>'required', 
     'phone'=>'required', 
    ]); 
    $member->update($request->all()); 
    return redirect()->route('members.index') 
     ->with('success','Member updated successfully'); 
} 

私は事前にoperations.thankあなたの両方のために一つだけの関数を作成する必要があります。

+0

モジュラーコードのために別々の機能を記述する必要がありhttps://laravel.com/docs/5.5/eloquent#other-creation-methods は、一つの機能で、このメソッドを使用してみてください。更新と作成の両方のためのupdateOrCreate –

答えて

0

は与えることによって、あなたのルート

Route::post('createanddelete/{id?}','[email protected]'); 

を定義しますか?経路に応じてビュープロバイダのそのオプションのパラメータが

コントローラーで

public function yourFunction($id = null, Request $request) 
{ 
    request()->validate([ 
    'name' => 'required', 
    'email' => 'required', 
    'address'=>'required', 
    'phone'=>'required', 
    ]); 

    // write update code 
    if($id) 
    { 
    $member = Member::find($id); 
    if($member) 
    { 
     $member->update($request->all()); 
     return redirect()->route('members.index') 
       ->with('success','Member updated successfully'); 
    } 
    } 
    // write create code 
    else 
    { 
     Member::create($request->all()); 
     return redirect()->route('members.index') 
      ->with('success','Member created successfully'); 
    } 
} 

形態の作用を意味します。

希望、これは役立ちますが、あなたは

+0

他の人に役立つかもしれないので、この質問をupvoteしてください – Vikash

関連する問題