簡體   English   中英

laravel 5.3在選擇選項值中獲得正確的值

[英]laravel 5.3 getting correct value in select option value

在我的編輯表單中,選擇選項值未從數據庫中填充正確的值。

我有兩個具有一對多關系的模型。 藝術家和專輯

這是我在albumcontroller中的編輯方法

 public function edit($id)
    {
        //
        $album = Album::find($id);
        $artists = Artist::all();
        return view('admin.albums.edit', compact('album', 'artists'));
    }

這是代碼填充選擇選項

 <div class="form-group">
                    <label for="artist">Select An Artist:</label>
                    <select class="form-control" id="Artist" name="artist_id">
                        @foreach($artists as $artist)
                            <option value="{{$artist->id}}">{{ $artist->name }}</option>
                        @endforeach
                    </select>
                </div>

此代碼將填充數據庫中的所有藝術家,但不會為該專輯選擇匹配的藝術家。

編輯功能:

public function edit($id)
{

    $album = Album::find($id);
    $artists = Artist::all();
    $current_artist = $album->artist()->first();
    return view('admin.albums.edit', compact('album', 'artists'));
}

形成:

<div class="form-group">
<label for="artist">Select An Artist:</label>
<select class="form-control" id="Artist" name="artist_id">
    @foreach($artists as $artist)
        <option value="{{$artist->id}}"@if($artist->id == $current_artist->id) selected='selected' @endif>{{ $artist->name }}</option>
    @endforeach
</select>
</div>
$album = Album::find($id);
$artist = $album->artist()->first();
$artist_id = $artist ? $artist->id : 0;
$artists = Artist::all();

return view('admin.albums.edit', compact('artist_id', 'artists'));

 <div class="form-group">
    <label for="artist">Select An Artist:</label>
    <select class="form-control" id="Artist" name="artist_id">
        @foreach($artists as $artist)
            <option {{ $artist_id === $artist->id ? 'selected' : '' }} value="{{$artist->id}}">{{ $artist->name }}</option>
        @endforeach
    </select>
</div>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM