php - 编辑外键的下拉列表
问题描述
我有一个名为标记id
的表,其中包含 2 个字段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>
解决方案
看起来你的问题是你正在使用的变量。您正在使用$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 方法。这种方法假设只带一个记录。尝试使用不同字段的方法。这会带来一份记录清单。
推荐阅读
- python - Pandas:比较系列中的列表对象
- java - JSP 页面无法从资源文件夹-IntelliJ 中获取引导文件
- mongodb - 使用 MongoDB 从 Golang 中的子对象数组中获取值
- jquery - 如何在引导模式打开中添加类
- javascript - Angular - ViewChild(Directive) 在指令中返回未定义
- java - tomcat 9 的 SSL 混合身份验证
- excel - Excel VBA - 将单元格的内容添加到文件名的第一个空格中
- node.js - 从 Node.js 连接 sqlite3
- python - 具有多个标头的 Pandas 时间序列数据帧
- c# - 字符串长度超过服务器上maxJsonLength属性错误设置的值