繁体   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