“未定义的变量:角色”在 Laravel 刀片模板中



我正在创建一个名为edit.blade的文件来编辑用户。

问题是,当我尝试列出所有角色时,Laravel打印了以下错误:

Undefined variable: roles (View: /home/ubuntu/workspace/resources/views/user/edit.blade.php)

这是我edit.blade模板:

@extends ('adminlte::page')
@section('content')
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.19/css/jquery.dataTables.css">
<div class="container" style="margin-left:25%">
    <div class="row">
        <div class="col-md-8 col-md-offset-2">
            <div class="panel panel-default">
                <div class="panel-heading">
                    <h2>Editar datos del Usuario</h2>
                </div>
                <div class="panel-body">
                    <form class="form-horizontal" method="POST" action="{{ route('user.update', ['user' => $user->id]) }}">
                        {{ csrf_field() }}
                        <input type="hidden" name="_method" value="PUT"/>

                        <div class="form-group{{ $errors->has('name') ? ' has-error' : '' }}">
                            <label for="name" class="col-md-4 control-label">
                                Nombre
                            </label>
                            <div class="col-md-6">
                                <input id="name" type="text" class="form-control" name="name" value="{{ $user->name }}"  autofocus style=" ">
                                @if ($errors->has('name'))
                                    <span class="help-block">
                                        <strong style=" ">{{ $errors->first('name') }}</strong>
                                    </span>
                                @endif
                            </div>
                        </div>
                        <div class="form-group{{ $errors->has('email') ? ' has-error' : '' }}">
                            <label for="email" class="col-md-4 control-label">
                                Email
                            </label>
                            <div class="col-md-6">
                                <input id="email" type="text" class="form-control" name="email" value="{{ $user->email }}"  autofocus style=" ">
                                @if ($errors->has('email'))
                                    <span class="help-block">
                                        <strong style=" ">{{ $errors->first('email') }}</strong>
                                    </span>
                                @endif
                            </div>
                        </div> 

                            <div class="form-group">
                                 <label for="club" class="col-md-4 control-label">
                                Club
                                </label>
                                <div class="col-md-6">
                                <select name="id_club" >
                                @foreach($clubs as $club)
                                    <option value="{{$club->id_club}}" class="form-control">{{$club->nombre}}</option>
                                    @endforeach
                                </select>
                            </div>
                        </div>
                            <div class="form-group">
                                 <label for="roles" class="col-md-4 control-label">
                                Rol
                                </label>
                                <div class="col-md-6">
                                <select name="role_id" >
                                @foreach($roles as $role)
                                    <option value="{{$role->id}}" class="form-control">{{$role->name}}</option>
                                    @endforeach
                                </select>
                            </div>
                        </div>
                        <div class="form-group">
                            <div class="modal-footer">
                            <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                            <button type="submit" class="btn btn-primary">Guardar</button>
                          </div>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </div>
</div>
@endsection

这是我使用相关变量调用刀片模板的UserController

    public function edit(User $user)
    {
        $roles = Role::all();
        $clubs = Club::all();
        return view('user.edit', ['user' => $user], ['clubs' => $clubs], ['roles' => $roles]);
    }
    /**
     * Update the specified resource in storage.
     *
     * @param  IlluminateHttpRequest  $request
     * @param  AppUser  $user
     * @return IlluminateHttpResponse
     */
    public function update(Request $request, User $user)
    {
        $user->save();
        $user->roles()->sync([$request->input('role_id')]);
        //$user->update($request->all());
        return redirect()->route('user.index');
    }

我在此文件的顶部包含use AppRole;

更改以下内容:

return view('user.edit', ['user' => $user], ['clubs' => $clubs], ['roles' => $roles]);

对此:

return view('user.edit', ['user' => $user, 'clubs' => $clubs, 'roles' => $roles]);

view()接受要以数组形式发送到视图的数据作为第二个参数。

您也可以使用view(...)->with(compact('user', 'clubs', 'roles'))

最新更新