Выпадающий список для внешнего ключа

#php #laravel

#php #laravel

Вопрос:

Я хотел бы научиться создавать выпадающий список с внешним ключом в Laravel.

Для информации у меня есть таблица с именем series с 3 полями id, name, fk_mark.

Затем у меня есть другая таблица с именем marks с идентификатором 2 полей, 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('AppSerie', 'fk_mark');
    }

}
  

Серия моделей

     class Serie extends Model
    {

        protected $fillable = ['name', 'fk_mark'];

        public function marks(){

            return $this->belongsTo('AppMark', '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');
    }
  

Большое вам спасибо за вашу помощь.

Комментарии:

1. вы получаете какую-либо ошибку при этом выборе?

2. @LucasPiazzi: Привет :-), да, у меня ошибка «Неопределенная переменная: серия»

3. не могли бы вы, пожалуйста, показать нам свой SerieController? Или функция, которую вы используете для отправки $series переменной в ваше представление.

4. @Lucas Piazzi: Да, я отредактировал свое первое сообщение…

5. Пожалуйста, поправьте меня, если я ошибаюсь, но идея, которую я получаю, заключается в том, что вы хотите, чтобы выпадающий список отображал элементы, связанные с его родителем, т. Е. показывал серии в соответствии с метками. Этого вы хотите достичь?