外键下拉列表

时间:2019-03-05 21:37:01

标签: php laravel

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

有关信息,我有一个名为 series 的表,其中包含3个字段,分别是ID,名称,fk_mark。

然后,我还有另一个名为 marks 的表,其中包含2个字段ID,即name_mark。

我的创建工作正常,这是证明。

enter image description here enter image description here enter image description here

我对下拉列表感到困惑,请问外键的语法是什么?

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

非常感谢您的帮助。

0 个答案:

没有答案