显示一对多关系中的值

时间:2017-07-23 10:36:12

标签: laravel laravel-5 laravel-5.4

我有一个用户表与个人资料有一对多的关系,用户可以有一个个人资料:

问题是我想更新用户页面,在数据中我想在表单的选择选项中显示配置文件的所有名称,用户可以选择他的个人资料。

这是我的代码:

{!! Form::model($user, ['method' => 'PATCH','enctype'=>'multipart/form-data','route' => ['user.update', $user->id]]) !!}
    //.....
    <div class="form-group">
        <label for="profil_id">Profile</label>
        <input type="text" name="profil_id" class="form-control" value="{{$user->profil->name}}">
        <select>
            <option></option>
        </select>
    </div>
    <div class="form-group">
        <input type="submit" value="Edit" class="btn btn-info">
        <a href="{{ route('user.index')  }}" class="btn btn-default">Cancel</a>
    </div>
    {!! Form::close() !!}

我的用户控制器更新方法:

public function update(UsersRequest $request, $id)
{
    $user = Auth::user()->update($request->all());
    return redirect()->route('user.index');
}

我已经在User和Profile模型中建立了关系。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

  

我有一个与之有一对多关系的用户表   个人资料,用户可以拥有一个个人资料

如果用户可以拥有一个个人资料,那么关系应该是 one to one 而不是一个到多个

你的问题是:

  

我想在选择选项

中显示个人资料的所有名称

如果个人资料模型名称是个人资料,请使用此代码在选择框中显示个人资料名称

<select name="profileid">
    @foreach (\App\Profile::All() as $record)
        <option value="{{ $record->id }}">{{ $record->name }}</option>
    @endforeach
</select>