当我尝试编辑“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>
答案 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'));
}
}