当前位置: 首页 > 知识库问答 >
问题:

在laravel更新时,我的选择表单返回空

徐麒
2023-03-14

我仍然是新的laravel(5.5),我有一个问题,当我更新用户记录,错误是:

SQLSTATE[23000]:完整性约束冲突:1048列“部门”不能为空(SQL:updateuserssetpassword=$2y$10$j5wfEZ3N7SYDzWA10hbAguY9o6jY.xk1vfUEw0mBmc0351ZHaYDiy,部门=,联系人编号=12345,更新时间=2018-09-11 00:52:20,isAdmin=其中id=1)

recordscontroller.php

public function edit($id)
{
    //
    $edit_form = User::Join('office', 'users.department', '=', 'office.iso_code')->find($id);
    $records = User::all();
    $dept = Office::all();
    $result = DB::table('users')
                ->where('isBACSec','=', '1')
                ->get();

    return View('updateuser')->with('edit_form',$edit_form)->with('records',$records)->with('dept',$dept)->with('result',$result);
}

/**
 * Update the specified resource in storage.
 *
 * @param  \Illuminate\Http\Request  $request
 * @param  int  $id
 * @return \Illuminate\Http\Response
 */
public function update(UpdateDataRequest $request,$id)
{
    //
    $Record=User::find($id);
    $Record->wholename = $request->get('wholename');
    $Record->name = $request->get('name');
    $Record->contactno = $request->get('contact');
    $Record->department = $request->get('department');
    $Record->password =bcrypt($request->get('password')) ;
    $Record->department = $request->get('bacs');
    $Record->isAdmin = $request->get('usrlvl');
    $Record->save();
    return redirect()->back();
    $request->session()->flash('flash_message','Record updated successfully');
}

updateuserblade.php

<div class="container">
<div class="row">
    <!-- registration form -->
    <div class="col-xs-5 col-md-5">
        <div class="panel panel-default">
            <div class="panel-heading">Update Record</div>

            <div class="panel-body">
                <form class="form-horizontal" method="POST" action="{{ url('/edited_data',$edit_form->id) }}">
                    {{ csrf_field() }}
                    {{ method_field('PATCH') }}


                    <div class="form-group{{ $errors->has('wholename') ? ' has-error' : '' }}">
                        <label for="wholename" class="col-md-4 control-label">Name</label>

                        <div class="col-md-6">
                            <input id="wholename" type="text" class="form-control" name="wholename" value="{{ $edit_form->wholename }}" required autofocus>

                            @if ($errors->has('wholename'))
                                <span class="help-block">
                                    <strong>{{ $errors->first('wholename') }}</strong>
                                </span>
                            @endif

                        </div>
                    </div>

                    <div class="form-group{{ $errors->has('contact') ? ' has-error' : '' }}">
                        <label for="contact" class="col-md-4 control-label">Contact</label>

                        <div class="col-md-6">
                            <input id="contact" type="text" class="form-control" name="contact" value="{{ $edit_form->contactno }}" required autofocus>

                            @if ($errors->has('contact'))
                                <span class="help-block">
                                    <strong>{{ $errors->first('contact') }}</strong>
                                </span>
                            @endif
                        </div>
                    </div>

                    <div class="form-group{{ $errors->has('department') ? ' has-error' : '' }}">
                        <label for="department" class="col-md-4 control-label" >Department</label>

                        <div class="col-md-6">
                            <select id="department" type="text" class="form-control" name="department" onchange="showDiv(this)" required autofocus>    
                                @foreach ($dept as $key=>$dept)
                                        <option value="{{$dept->iso_code}}" @if($edit_form->department == $dept->iso_code) selected @endif>{{$dept->office_name}}</option>
                                @endforeach               
                            </select>

                            @if ($errors->has('department'))
                                <span class="help-block">
                                    <strong>{{ $errors->first('department') }}</strong>
                                </span>
                            @endif
                        </div>
                    </div>

                    <div class="form-group{{ $errors->has('name') ? ' has-error' : '' }}">
                        <label for="name" class="col-md-4 control-label">Username</label>

                        <div class="col-md-6">
                            <input id="name" type="text" class="form-control" name="name" value="{{ $edit_form->name }}" required autofocus>

                            @if ($errors->has('name'))
                                <span class="help-block">
                                    <strong>{{ $errors->first('name') }}</strong>
                                </span>
                            @endif
                        </div>
                    </div>

                    <div class="form-group{{ $errors->has('password') ? ' has-error' : '' }}">
                        <label for="password" class="col-md-4 control-label">Password</label>

                        <div class="col-md-6">
                            <input id="password" type="password" class="form-control" name="password" required>

                            @if ($errors->has('password'))
                                <span class="help-block">
                                    <strong>{{ $errors->first('password') }}</strong>
                                </span>
                            @endif
                        </div>
                    </div>

                    <div class="form-group">
                        <label for="password-confirm" class="col-md-4 control-label">Confirm Password</label>

                        <div class="col-md-6">
                            <input id="password-confirm" type="password" class="form-control" name="password_confirmation" required>
                        </div>
                    </div>

                    <div class="form-group{{ $errors->has('userlvl') ? ' has-error' : '' }}">
                        <label for="userlvl" class="col-md-4 control-label" >User Level</label>

                        <div class="col-md-6">
                            <select id="userlvl" type="text" class="form-control" name="userlvl" autofocus>
                                <option value="" >User</option>
                                <option id="admin" style="display:none;" value = "1" @if($edit_form->isAdmin === 1)selected @endif>Admin</option>
                                <script type="text/javascript">

                                    function showDiv(elem){

                                       if(elem.value == "ICT"){
                                          document.getElementById('admin').style.display = 'block';
                                       }else{
                                          document.getElementById('admin').style.display = 'none';
                                       }
                                    }
                                </script>



                            </select>

                            @if ($errors->has('userlvl'))
                                <span class="help-block">
                                    <strong>{{ $errors->first('userlvl') }}</strong>
                                </span>
                            @endif
                        </div>
                    </div>





                    @if ($edit_form->isBACSec == 1)
                    <div class="form-group">
                        <div class="checkbox col-md-8">
                          <label><input name="bacs" id="bacs" type="checkbox" value="1" onchange="alert('This user is no longer the BAC Secretariat')" checked>Is BAC Secretariat?</label>
                        </div>
                    </div>
                    @elseif($result->isEmpty()) 
                    <div class="form-group">
                        <div class="checkbox col-md-8">
                          <label><input name="bacs" id="bacs" type="checkbox" value="1">Assign as BAC Secretariat</label>
                        </div>
                    </div>
                    @endif


                    <div class="form-group">
                        <div class="col-md-6 col-md-offset-4">
                            <button type="submit" class="btn btn-primary">
                                Update
                            </button>
                        </div>
                    </div>
                </form>
            </div>

        </div>
    </div>

    <!-- update edit edelete-->
   @include('usertable')

</div>

UpdateDataRequest.php

<?php

名称空间App\Http\Requests;

使用Illumb\Foundation\Http\FormRequest;

类UpdateDataRequest扩展FormRequest { /** * 确定用户是否被授权发出此请求. * * @返回bool*/公共函数授权(){返回true;}

/**
 * Get the validation rules that apply to the request.
 *
 * @return array
 */
public function rules()
{
    return [
        //
        'wholename' => 'required|string|max:255',
        'department' => 'required|string|max:255',
        'name' => 'required|string|max:255',
        'password' => 'required|string|min:6|confirmed',
    ];
}

}

共有2个答案

陆子石
2023-03-14

在控制器上:

$Record->department = $request->get('department');
$Record->password =bcrypt($request->get('password')) ;
$Record->department = $request->get('bacs');

冗余将其更改为:

   $Record->department = $request->get('department');
$Record->password =bcrypt($request->get('password')) ;

看在上帝的份上。抱歉给你添麻烦了。

聂奇
2023-03-14

尝试dd($request) 内部公共功能更新方法

 类似资料:
  • 问题内容: 我是Swing的新手。 我要在单击按钮(完成按钮)后更新表格。我认为数据正确,但屏幕无法正常工作。 以下是我程序的说明 选中复选框,然后单击完成按钮 最底层应更改。 没有主 这是我的代码: 问题答案: 而不是这样做… 只需更新现有模型 或简单地 假设您要继续向表中添加新行。如果您要这样做,还可以先清除表,然后再向其中添加新行。 Swing的工作原理是MVC(模型-视图- 控制器 ),该

  • 我知道我可以在我的表单上创建一个绑定,以便能够访问和更新下表中的记录: 但这是通过从路由传递一个id来完成的 所以只有当我只需要向用户显示和更新一条记录/行时,这才有用。基本上就像一个博客条目,有一个标题,正文为一行。我只是想用户去的路线 /nav/edit/和它显示所有行的导航作为一个可编辑的输入发送回数据库。 我的问题是,如何从表中检索多行,并将它们的值显示到输入字段中,当用户编辑其字段时,这

  • 主要的问题是,如何更新表单中选择的几个字段。我想让用户选择他们想要更新的字段。例如,我有form类: 之后,我将在类中设置字段,例如,如果用户只想更改他们的名称和姓氏,我将通过方法从现有的中获取其余的字段,然后更改一些字段并将更改的对象保存到数据库中。

  • 我们的应用程序主要使用Hibernate版本支持的乐观锁定。我们计划在一个特定场景中实现悲观锁定。我没有太多悲观锁定的经验,所以如果这个问题听起来很幼稚,请原谅。 当用户显示更新条目的意图时——我们使用“选择更新”锁定相应的数据库行。现在,如果该用户花了很长时间提交他的更改,但在锁定后忘记了它,我们如何使用一些超时/回滚机制解锁此锁?这样该行就不会长时间保持锁定,并禁止所有其他用户对其进行编辑。

  • 编辑的 Laravel版本:5.2.45 PHP版本:5.6 数据库驱动程序 你好 我完成了从laravel 5.1到5.2的更新,并解决了一些问题... 现在我尝试登录,但认证验证密码字段的密码,但在我的数据库密码有另一个名称是senha。 照亮/Auth/EloquentUserProvider.php 您可以看到,函数试图在凭据中找到字符串密码,而它应该是senha 同样的问题与valida

  • 问题内容: 我创建了以下示例,以便您可以确切了解正在发生的事情:http : //jsfiddle.net/8t2Ln/101/ 如果我使用ng-options,也会发生同样的事情。我这样做有不同的原因,但由于简化了示例,所以省略了这一部分。 如您所见,默认情况下它具有两个选项。我将在选择旁边显示ng- model的选择值,以便您可以看到它的含义。当您在顶部添加第三个选项时,它会将值设置为该新选项