我有一个名为 marks 的表,其中包含2个字段id
,name_mark
。然后,我有另一个名为 series 的表,其中包含3个字段id
,name
,fk_mark
。
我的目标是创建一个编辑系统。我的第一个问题是在我的外键(fk_mark)的下拉列表中,我总是在每行中都有相同的项。
这是我的 SerieController
public function edit($id)
{
$series = Serie::find($id);
$marks = Mark::find($id);
return view('admin.series.edit', compact('marks', 'series'));
}
public function update(Request $request, $id)
{
$request->validate([
'name' => 'required|string',
'fk_mark' => 'required'
]);
$series = Serie::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');
}
在我的 series.edit.blade 中,我有这个
<form class="panel-body" action="{{route('series.update',$marks->id)}}" method="POST">
<input name="_method" type="hidden" value="PATCH">
@csrf
<fieldset class="form-group">
<label for="form-group-input-1">Nom</label>
<input type="text" name="name" class="form-control" id="form-group-input-1" value="{{$series->nom}}">
</fieldset>
<div class="form-group">
<label for="company-content">Select Mark</label>
<select name="fk_mark" id="" class="form-control">
@foreach($marks as $mark)
<option value="{{$marks->id}}">
{{$marks->name_mark}}
</option>
@endforeach
</select>
</div>
答案 0 :(得分:3)
看起来您的问题是您使用的变量。您使用的是$marks
而不是$mark
。
您的代码:
@foreach($marks as $mark)
<option value="{{$marks->id}}">{{$marks->name_mark}}
尝试一下:
@foreach($marks as $mark)
<option value="{{$mark->id}}">{{$mark->name_mark}}
您遇到的另一个问题是,您尝试检索Marks的列表,但是使用的是find方法,该方法如何通过键带来值。该方法假设只带来一个记录。在哪里尝试方法。与不同的领域。这会带来一个记录列表。