【问题标题】:Laravel. Edit user with relationship拉拉维尔。编辑具有关系的用户
【发布时间】:2017-08-16 14:03:39
【问题描述】:

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

控制器

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');
}

表格

{!! 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>

谢谢帮助。

【问题讨论】:

  • 从您上面的代码中,我该死的确定您面临未定义的$user 变量问题。正确的?如果没有,则提供相应的代码以正确调查原因。
  • 我将代码添加到控制器中,但不确定是不是这样。
  • 我发现了类似的东西,stackoverflow.com/questions/23283522/… 但我无法正确应用它。
  • 现在你想要的是,将所有角色显示到下拉列表中对吗?
  • 是的,我想展示角色。在此之后,我想将用户的角色更改为列表中的另一个

标签: php laravel


【解决方案1】:

我认为您希望将所有角色显示到“角色”下拉列表中,请检查以下代码更改: 控制器

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'));
}

表格

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

注意: 使用 pluck 代替 laravel >= 5.3 的列表。 Collection、查询构建器和 Eloquent 查询构建器对象的列表方法已重命名为 pluck。方法签名保持不变。

如果仍然无法正常工作,请告诉我!

【讨论】:

  • 它可以工作,但列表未定义。我在 pluck() 上交换了 lists()。
  • 哦,太好了...很高兴为您提供帮助...:)
  • 我可以再问你一个问题吗?我添加了这个下拉列表,但他只显示列表。当我单击按钮“发送”时,我的数据库不会改变。 Form::text 更改了我的数据库,但 Form::select 没有进行任何更改。也许,我的控制器有问题?
  • 是的,为什么不呢?我也可以为您提供帮助,但更好的方法是创建一个新问题,然后我会努力在那里,以便其他人可以在需要时获得解决方案...
猜你喜欢
  • 1970-01-01
  • 2021-06-07
  • 2014-11-28
  • 2020-09-26
  • 1970-01-01
  • 2015-04-13
  • 2018-11-05
  • 2019-06-17
  • 2017-10-02
相关资源
最近更新 更多