我想学习在Laravel上用外键创建一个下拉列表。
有关信息,我有一个名为 series 的表,其中包含3个字段,分别是ID,名称,fk_mark。
然后,我还有另一个名为 marks 的表,其中包含2个字段ID,即name_mark。
我的创建工作正常,这是证明。
我对下拉列表感到困惑,请问外键的语法是什么?
<fieldset class="form-group">
<label for="form-group-input-1">Name serie</label>
<input type="text" name="name" class="form-control" id="form-group-input-1">
</fieldset>
<fieldset class="form-group">
<label for="form-group-input-1">FK Mark</label>
<input type="text" name="fk_mark" class="form-control" id="form-group-input-1">
</fieldset>
我已经尝试过了,但是没有结果...
<div class="form-group">
<label for="company-content">Select compagny</label>
<select name="fk_mark" class="form-control">
@foreach($series as $serie)
<option value="{{$serie->id}}"> {{$serie->name}} </option>
@endforeach
</select>
</div>
这是我的模特
模型标记
class Mark extends Model
{
protected $fillable = ['name_mark'];
public function series(){
return $this->hasMany('App\Serie', 'fk_mark');
}
}
模型系列
class Serie extends Model
{
protected $fillable = ['name', 'fk_mark'];
public function marks(){
return $this->belongsTo('App\Mark', 'fk_mark');
}
}
SerieController
public function index()
{
$series = Serie::oldest()->paginate(5);
return view('admin.series.index', compact('series'))
->with('i', (request()->input('page', 1)-1)*5);
}
public function create()
{
return view('admin.series.create');
}
public function store(Request $request)
{
$request->validate([
'name' => 'required',
'fk_mark' => 'required'
]);
Serie::create($request->all());
return redirect()->route('series.index')
->with('success', 'save');
}
非常感谢您的帮助。