Php 拉雷维尔。编辑具有关系的用户

Php 拉雷维尔。编辑具有关系的用户,php,laravel,Php,Laravel,我想让表单编辑用户。目前,我可以编辑用户表中的数据,但我想从表角色(dropdownlist)中为用户角色分配权限 控制器 public function index() { $users = User::with('roles')->get(); return view('pages.user', compact('users')); } public function update($id, Request $request) { $user = User::w

我想让表单编辑用户。目前,我可以编辑用户表中的数据,但我想从表角色(dropdownlist)中为用户角色分配权限

控制器

public function index()
{
    $users = User::with('roles')->get();
    return view('pages.user', compact('users'));
}
public function update($id, Request $request)
{
    $user = User::with('roles')->findOrFail($id);
    $user->update($request->all());
    return redirect('users');
}
public function index()
{   
    //Get user detail
    $users = User::with('roles')->get();

    //Get all roles
    $userRole = Roles::lists('name','id');
    return view('pages.user', compact('users', 'userRole'));
}
表格

{!! Form::model($user, ['method' => 'PATCH', 'action'=>['UsersController@update', $user->id]]) !!}
            <div class="form-group">
                <div class="form-group">
                    {!! Form::label('name','Name: ') !!}
                    {!! Form::text('name', null, ['class'=>'form-control','placeholder'=>'Here, user name']) !!}
                </div>
                <div class="form-group">
                        {!! Form::label('roles','Roles: ') !!}
                        {!! Form::select('roles',['class'=>'form-control']) !!}
                        {!! Form::select('roles',$user,null,['class'=>'form-control']) !!} 
//i try this but still not working
                </div>
            </div>
<div class="form-group">
    {!! Form::label('roles','Roles: ') !!}
    {!! Form::select('roles',$userRole, null,['class'=>'form-control']) !!}<!-- replace with $users['role_id'], if want to display selected role-->
</div>
{!!Form::model($user,['method'=>'PATCH','action'=>['UsersController@update“,$user->id]])
{!!Form::label('name','name:')
{!!Form::text('name',null,['class'=>'Form-control','placeholder'=>'此处,用户名]])
{!!Form::label('roles','roles:')
{!!表单::选择('roles',['class'=>'Form-control'])
{!!Form::select('roles',$user,null,['class'=>'Form-control'])
//我试过了,但还是不起作用

Thx寻求帮助。

我想您希望将所有角色显示到“角色”下拉菜单中,请检查下面的代码更改: 控制器

public function index()
{
    $users = User::with('roles')->get();
    return view('pages.user', compact('users'));
}
public function update($id, Request $request)
{
    $user = User::with('roles')->findOrFail($id);
    $user->update($request->all());
    return redirect('users');
}
public function index()
{   
    //Get user detail
    $users = User::with('roles')->get();

    //Get all roles
    $userRole = Roles::lists('name','id');
    return view('pages.user', compact('users', 'userRole'));
}
表格

{!! Form::model($user, ['method' => 'PATCH', 'action'=>['UsersController@update', $user->id]]) !!}
            <div class="form-group">
                <div class="form-group">
                    {!! Form::label('name','Name: ') !!}
                    {!! Form::text('name', null, ['class'=>'form-control','placeholder'=>'Here, user name']) !!}
                </div>
                <div class="form-group">
                        {!! Form::label('roles','Roles: ') !!}
                        {!! Form::select('roles',['class'=>'form-control']) !!}
                        {!! Form::select('roles',$user,null,['class'=>'form-control']) !!} 
//i try this but still not working
                </div>
            </div>
<div class="form-group">
    {!! Form::label('roles','Roles: ') !!}
    {!! Form::select('roles',$userRole, null,['class'=>'form-control']) !!}<!-- replace with $users['role_id'], if want to display selected role-->
</div>

{!!Form::label('roles','roles:')
{!!Form::select('roles',$userRole,null,['class'=>'Form-control'])
注意:对于laravel>=5.3,使用代替列表。集合、查询生成器和雄辩查询生成器对象上的lists方法已重命名为pulk。方法签名保持不变


如果仍然不工作,请告诉我

从你上面的代码中,我敢肯定你面临着未定义的
$user
变量问题。对的如果没有,则提供相应的代码以正确调查原因。我已将代码添加到控制器中,但我不确定是否是这样。我发现了类似的内容,但无法正确应用。现在,您想要的是,将“所有角色”显示到下拉列表中,对吗?是的,我想显示角色。在此之后,我想将用户的角色更改为列表上的另一个角色。它可以工作,但列表未定义。我在Pull()上交换了列表。哦,太好了…很高兴能帮助…:)我可以再问你一个问题吗?我添加了这个下拉列表,但他只显示列表。当我点击Button“发送”时,我的数据库没有改变。Form::text更改我的数据库,但Form::select不进行任何更改。也许控制器有问题?是的,为什么没有?我也可以帮你,但更好的办法是提出一个新问题,然后我会努力解决,这样其他人可以在需要时得到解决。。。