请告诉我这个 Controller SerieController 是否正确?因为我不这么认为。 实际上有两种模式。一个模型是 Serie,另一个是 Mark。
当我点击下拉列表时,我没有看到我的项目...
public function edit($id)
{
$series = Serie::with('marks')->find($id);
return view('admin.series.edit', compact('series'));
}
public function update(Request $request, $id)
{
$request->validate([
'name' => 'required',
'fk_mark' => 'required'
]);
$series = Serie::with('marks')->find($id);
$series->name = $request->get('name');
$series->fk_mark = $request->get('fk_mark');
$series->save();
return redirect()->route('series.index')
->with('success', 'updated successfully');
}
我的 edit.blade.php
<form class="panel-body" action="{{route('series.update',$series->id)}}" method="POST">
<input name="_method" type="hidden" value="PATCH">
@csrf
<fieldset class="form-group">
<label for="form-group-input-1">Name</label>
<input type="text" name="name" class="form-control" id="form-group-input-1" value="{{$series->name}}">
</fieldset>
<div class="form-group">
<label for="company-content">Select Mark</label>
<select name="fk_mark" id="" class="form-control">
@foreach($series->marks as $mark)
<option value="{{$mark['id']}}">{{$mark['name_mark']}}</option>
@endforeach
</select>
</div>
关于模型
型号系列
class Serie extends Model
{
protected $fillable = ['name', 'fk_mark'];
public function marks(){
return $this->belongsTo('App\Mark', 'fk_mark');
}
}
模型标记
class Mark extends Model
{
protected $fillable = ['name_mark'];
public function series(){
return $this->hasMany('App\Serie', 'fk_mark');
}
public function cars(){
return $this->hasMany('App\Car','fk_serie');
}
}
提前谢谢你。
最佳答案
在您的编辑功能中,您必须这样做:
public function edit($id)
{
$series = Serie::with('marks')->find($id);
return view('admin.series.edit', compact('series'));
}
在您的blade中,您将像这样获取标记:
$series->marks->name_mark;
和update函数更新两个表的数据是同一个方法。
希望对您有所帮助。
关于php - Laravel 中一个 Controller 的两个模型(方法编辑和更新),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55075987/