Перечисление имен одного модуля в раздел редактирования другого модуля с использованием отношений - PullRequest
0 голосов
/ 27 апреля 2020

Вот обе модели.

Факультет. php

<?php

namespace App\Model\Admin;

use Illuminate\Database\Eloquent\Model;

class Faculty extends Model
{
    protected $guarded = [];

    public function streams()
    {
        return $this->hasMany(Stream::class);
    }
}

Поток. php

<?php

namespace App\Model\Admin;

use Illuminate\Database\Eloquent\Model;

class Stream extends Model
{
    protected $guarded = [];

    public function faculty()
    {
        return $this->belongsTo(Faculty::class);
    }

    public function chapters()
    {
        return $this->hasMany(Chapter::class);
    }
}

StreamController. php

public function edit(Faculty $faculty, Stream $stream, $id)
{
    $stream = Stream::find($id);
    $faculty = Faculty::all('name', 'id');
    return view('admin.stream.edit')->with(['stream' => $stream, 'faculty' => $faculty]);
}

Blade VIew

<div class="form-group">
                        <label for="status">Select Faculty</label>
                        <select name="faculty_id" id="" class="form-control form-control-sm">

                            @foreach($faculty as $item)
                            <option value="{{ $item->id }}" >{{ $item->name }} </option>
                            @endforeach
                        </select>
                    </div>

Я получаю список, но я хочу сначала показать выбранный, так как это раздел редактирования. Как этого достичь? Помощь * * 1023

1 Ответ

0 голосов
/ 27 апреля 2020

Вы должны изменить это. И вам не нужно передавать $id, потому что у вас уже есть значение $tream. Так что эта строка тоже не нужна $stream = Stream::find($id);.

public function edit(Faculty $faculty, Stream $stream, $id)
{
    $stream = Stream::find($id);
    $allFaculty = Faculty::all('name', 'id');
    return view('admin.stream.edit',compact('faculty','stream','allFaculty'));
}

И ваш взгляд обновляет эту

@foreach($allFaculty as $item)
      <option value="{{ $item->id }}" @if($faculty->id==$item->id) selected @endif >{{ $item->name }} </option>
@endforeach
...