首页 > 解决方案 > 外键下拉列表

问题描述

我想学习在 Laravel 上创建一个带有外键的下拉列表。

有关信息,我有一个名为series的表,其中包含 3 个字段 id、name、fk_mark。

然后,我有另一个名为标记的表,其中包含 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');
        }

    }

系列控制器

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');
    }

非常感谢您的帮助。

标签: phplaravel

解决方案


推荐阅读