在编辑“Metier”时创建新的“Metier”

时间:2018-02-22 16:18:28

标签: laravel

当我尝试编辑“Metier”时,会创建一个新的“Metier”,旧的“Metier”保持不变。我想粉碎旧的“Metier”并通过冥想创造一个新的。

控制器

public function edit($id)
{
    $metier=Metier::find($id);
    return view('metier.edit',['libelle_metier'=>$metier]);
}

/**
 * Update the specified resource in storage.
 *
 * @param  \Illuminate\Http\Request  $request
 * @param  int  $id
 * @return \Illuminate\Http\Response
 */
public function update(Request $request, $id)
{
    $metier=Metier::find($id);
    return view('metier.edit',['libelle_metier'=>$metier]);
}

查看

<div class="form-group">
    <label for="">libelle Metier </label>
    <input type="text"  name ="libelle_metier" class="form-control"value ="{{$libelle_metier->libelle_metier}}" >
</div>

<div class="form-group">
    <input type="submit" value = "enregistrer" class="form-control btn btn-primary">
</div>

1 个答案:

答案 0 :(得分:1)

我看到你的更新方法正在让用户再次编辑表单,这里有一个很好的资源控制器(MetierController)你可以使用。

  

这只是一个提出想法的样本。要做得好,有很多   可以做的更多,如验证,例外和好   重定向。

<强> MetierController.php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use App\Metier;
use Illuminate\Http\Request;

class MetierController extends Controller
{
    //inject the model to constructor
    public function __construct(Metier $metier)
    {
        $this->metier = $metier;
    }

    //takes user to creation form
    // GET 
    public function create()
    {
        return view('metier.create');
    }  

    //when the create form is submitted
    // POST
    public function store(Request $request)
    {
        //some validations
        //if the form field matches with db fields you can use $request->all()
        $metier = $this->metier->create($request->all());

        //assuming you have route names set
        return redirect()->route('metier.show',$metier->id);
    }

    //takes user to edit form
    // GET
    public function edit($id)
    {
        $metier = $this->metier->find($id);
        return view('metier.edit',compact('metier'));
    }

    //when the edit form is sublitted
    // PATCH(POST)
    public function update(Request $request, $id)
    {
        $metier = $this->metier->find($id);
        //some validations
        //if the form field matches with db fields you can use $request->all()
        $metier->update($request->all());
        //take user to somewhere when the update is done
        return view('metier.edit',compact('metier'));
    }

 }
相关问题