2017-10-11 14 views
0

J'ai déjà la même forme pour les deux. mon contrôleur ci-dessous montre deux fonctions distinctes pour créer et mettre à jour je suis nouveau dans le cadre de Laravel, et je travaille sur le projet de carnet d'adresses. pour la création de nouvelles:comment faire la même fonction pour créer et mettre à jour dans le fichier de contrôleur laravel pour créer et mettre à jour l'opération?

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'); 
} 

que je dois faire qu'une seule fonction à la fois du operations.thank vous à l'avance.

+0

https://laravel.com/docs/5.5/eloquent#other-creation-methods essayer d'utiliser ces méthodes dans une fonction. updateOrCreate pour les deux mise à jour et créer –

Répondre

0

Définir votre itinéraire

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

En donnant? en cours de route signifie que les paramètres facultatifs

Dans votre contrôleur

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'); 
    } 
} 

Dans le fournisseur de vue de l'action de la forme en conséquence.

Espérons que cela vous aidera, mais vous devez écrire fonction distincte pour le code modulaire

+0

S'il vous plaît upvote cette question aussi, car il pourrait aider les autres – Vikash