php – 如何在laravel 5.2中更新数据库表
发布时间:2020-12-14 19:43:00 所属栏目:大数据 来源:网络整理
导读:我在laravel 5.2中创建了一个项目.在那个“myform.blade.php”页面中,创建了用于注册用户的表单.注册后,它将以表格格式显示当前用户(“index.blade.php”).在那里,我给了两个动态按钮,如桌子内的下降.一个用于编辑,另一个用于编辑/查看.当我点击删除按钮时,
我在laravel 5.2中创建了一个项目.在那个“myform.blade.php”页面中,创建了用于注册用户的表单.注册后,它将以表格格式显示当前用户(“index.blade.php”).在那里,我给了两个动态按钮,如桌子内的下降.一个用于编辑,另一个用于编辑/查看.当我点击删除按钮时,它将从主数据库(employeeID)作为参考ID删除数据库中的相应行,它正常工作.如果我点击编辑/查看按钮,它将重定向到“edit.blade.php”.在那里我创建了与myform.blade.php相同的表单.如果我们想编辑细节,我们可以从那里编辑.我可以从数据库中获取数据到我在“edit.blade.php”中创建的表单.但是我不知道如何在不重新插入相同数据的情况下更新数据(这是不可能的,因为它会通过尝试插入重复的主键来创建完整性约束违规.任何人都可以告诉我如何进行更新回复很明显.
“myform.blade.php”是 @extends('app') @section('content') <div class="templatemo-content-wrapper"> <div class="container"> <ol class="breadcrumb"> <li><a href="{{ url("/") }}"><font color="green">Home</font></a></li> <li class="active">Employee Form</li> </ol> <div class="row"> <div class="col-md-8 col-md-offset-2"> <div class="panel panel-success"> <div class="panel-heading">Employee Form</div> <div class="panel-body"> @if (count($errors) > 0) <div class="alert alert-danger"> <strong>Whoops!</strong> There were some problems with your input.<br><br> <ul> @foreach ($errors->all() as $error) <li>{{ $error }}</li> @endforeach </ul> </div> @endif <form class="form-horizontal" role="form" method="POST" action="{{ url('myform/myform/') }}"> <input type="hidden" name="_token" value="{{ csrf_token() }}"> <div class="form-group"> <label class="col-md-4 control-label">Employee ID</label> <div class="col-md-6"> <input type="text" class="form-control" name="employeeID" value="{{ old('employeeID') }}" placeholder="Enter employee ID"> </div> </div> <div class="form-group"> <label class="col-md-4 control-label">E_number</label> <div class="col-md-6"> <input type="text" class="form-control" name="employeeNo" value="{{ old('employeeNo') }}" placeholder="Enter employee number"> </div> </div> <div class="form-group"> <label class="col-md-4 control-label">Name</label> <div class="col-md-6"> <input type="text" class="form-control" name="Cname" value="{{ old('Cname') }}" placeholder="Enter Contact Name"> </div> </div> <div class="form-group"> <label class="col-md-4 control-label">DOB</label> <div class="col-md-6"> <input type="date" class="form-control" name="dob" value="{{ old('dob') }}" placeholder="Enter date of birth"> </div> </div> <div class="form-group"> <label class="col-md-4 control-label">Contact Phone</label> <div class="col-md-6"> <input type="text" class="form-control" name="phoneNumber" value="{{ old('phoneNumber') }}" placeholder="Enter Mobile Number"> </div> </div> <div class="form-group"> <label class="col-md-4 control-label">Address</label> <div class="col-md-6"> <input type="text" class="form-control" name="address" value="{{ old('address') }}" placeholder="Enter Address"> </div> </div> <div class="form-group"> <div class="col-md-6 col-md-offset-4"> <button type="submit" class="btn btn-warning"> Save </button> </div> </div> <a href="{{ url('myform/index') }}">view Data</a> </form> </div> </div> </div> </div> </div> </div> @endsection “index.blade.php”是 @extends('app') @section('content') <div class="templatemo-content-wrapper" xmlns="http://www.w3.org/1999/html"> <ol class="breadcrumb"> <li><a href="{{ url("/") }}"><font color="green">Home</font></a></li> <li class="active">user information</li> </ol> <div class="templatemo-content"> <h1>View/Edit user information</h1> <div> <div> <div> <table id="example" class="table table-striped table-hover table-bordered" bgcolor="#fff8dc"> <thead> <tr> <th>Employee ID</th> <th>Employee No</th> <th>Contact Name</th> <th>Date of birth</th> <th>Mobile number</th> <th>address</th> </tr> </thead> <tbody> {{--{{ UserController::getIndex() }}--}} @foreach($employer as $emp) <tr> <td>{{ $emp->employeeID }}</td> <td>{{ $emp->employeeNo }}</td> <td>{{ $emp->Cname }}</td> <td>{{ $emp->dob }}</td> <td>{{ $emp->phoneNumber }}</td> <td>{{ $emp->address }}</td> <td> {{--@if ( in_array($nam->isActive,array('Yes','No')) )--}} <div class="btn-group"> <button type="button" class="btn btn-info">Action</button> <button type="button" class="btn btn-info dropdown-toggle" data-toggle="dropdown"> <span class="caret"></span> <span class="sr-only">Toggle Dropdown</span> </button> <ul class="dropdown-menu" role="menu"> {{--@if ($nam->isActive == 'Yes')--}} <li data-toggle="modal" data-target="#acceptModal" data-bookingid="{{ $emp->employeeID }}"><a href="{{ url('myform/edit/'.$emp->employeeID) }}">View/ Edit</a> </li> {{--@endif--}} <li><a href="{{ url('/myform/delete/'.$emp->employeeID)}}">Delete</a></li> </ul> </div> {{--@endif--}} </td> </tr> @endforeach </tbody> </table> {{$employer->links()}} </div> </div> </div> </div> </div> {{--<a href="{{ url('user/add') }}"> <input type="submit" id="add" name="add" value="Edit" class="button"></a>--}} </br> <h4>Create a new Employee</h4> {{--<form class="templatemo-preferences-form" role="form" method="POST" action="{{ action('UserController@save') }}">--}} {{--<input type="hidden" name="_token" value="{{ csrf_token() }}">--}} <form role="form" method="POST" action="{{ url('myform/index') }}"> <input type="hidden" name="_token" value="{{ csrf_token() }}"> <div class="row"> <div class="col-md-6 margin-bottom-15"> <input type="text" class="form-control" name="employeeID" value="{{ old('employeeID') }}" placeholder="Enter employee ID"> </div> <div class="row templatemo-form-buttons"> <div class="submit-button"> <button type="submit" class="btn btn-primary">New</button> </div> </div> </div> </form> {{--</form>--}} <script type="text/javascript"> $(document).ready(function() { $('#example').dataTable(); } ); </script> @endsection “edit.blade.php”是 @extends('app') @section('content') <div class="templatemo-content-wrapper"> <div class="container"> <ol class="breadcrumb"> <li><a href="{{ url("/") }}"><font color="green">Home</font></a></li> <li class="active">Employee Form</li> </ol> <div class="row"> <div class="col-md-8 col-md-offset-2"> <div class="panel panel-success"> <div class="panel-heading">Employee Form</div> <div class="panel-body"> @if (count($errors) > 0) <div class="alert alert-danger"> <strong>Whoops!</strong> There were some problems with your input.<br><br> <ul> @foreach ($errors->all() as $error) <li>{{ $error }}</li> @endforeach </ul> </div> @endif <form class="form-horizontal" role="form" method="POST" action="{{ url('myform/myform/') }}"> <input type="hidden" name="_token" value="{{ csrf_token() }}"> @foreach($user as $use) <div class="form-group"> <label class="col-md-4 control-label">Employee ID</label> <div class="col-md-6"> <input type="text" class="form-control" name="employeeID" value="{{ $use->employeeID }}" placeholder="Enter employee ID"> </div> </div> <div class="form-group"> <label class="col-md-4 control-label">E_number</label> <div class="col-md-6"> <input type="text" class="form-control" name="employeeNo" value="{{ $use->employeeNo}}" placeholder="Enter employee number"> </div> </div> <div class="form-group"> <label class="col-md-4 control-label">Name</label> <div class="col-md-6"> <input type="text" class="form-control" name="Cname" value="{{ $use->Cname }}" placeholder="Enter Contact Name"> </div> </div> <div class="form-group"> <label class="col-md-4 control-label">DOB</label> <div class="col-md-6"> <input type="date" class="form-control" name="dob" value="{{ $use->dob }}" placeholder="Enter date of birth"> </div> </div> <div class="form-group"> <label class="col-md-4 control-label">Contact Phone</label> <div class="col-md-6"> <input type="text" class="form-control" name="phoneNumber" value="{{ $use->phoneNumber }}" placeholder="Enter Mobile Number"> </div> </div> <div class="form-group"> <label class="col-md-4 control-label">Address</label> <div class="col-md-6"> <input type="text" class="form-control" name="address" value="{{ $use->address }}" placeholder="Enter Address"> </div> </div> <div class="form-group"> <div class="col-md-6 col-md-offset-4"> <button type="submit" class="btn btn-warning"><a href="{{ url('myform/update/'.$use->employeeID) }}"> Update</a> </button> </div> </div> {{--<a href="{{ url('myform/index') }}"> <input type="button" id="add" name="add" value="View data" class="button"></a>--}} @endforeach </form> </div> </div> </div> </div> </div> </div> @endsection “myformController.php”是 <?php namespace AppHttpControllers; use Appmyform; use Mail; use IlluminateSupportFacadesDB; use FakerProviderDateTime; use AppUser; use AppHttpRequestscreateUserRequest; use IlluminateSupportFacadesAuth; use IlluminateSupportFacadesValidator; use IlluminateSupportFacadesInput; use SymfonyComponentHttpFoundationRequest; class myformController extends Controller { public $type = 'myform'; public function getIndex() { // $user = DB::table('user')->get(); $employer = DB::table('employee')->simplePaginate(5); return view('myform.index')->with('employer',$employer); } public function formInsert() { $postform = Input::all(); //insert data into mysql table $data = array('employeeID'=> $postform['employeeID'],'employeeNo'=> $postform['employeeNo'],'Cname'=> $postform['Cname'],'dob'=> $postform['dob'],'phoneNumber'=> $postform['phoneNumber'],'address'=> $postform['address'],); // echo print_r($data); $ck = 0; $ck = DB::table('employee')->Insert($data); //echo "Record Added Successfully!"; $employer = DB::table('employee')->simplePaginate(10); return view('myform.index')->with('employer',$employer); } public function delete($id) { DB::table('employee')->where('employeeID','=',$id)->delete(); $employer = DB::table('employee')->simplePaginate(10); return view('myform.index')->with('employer',$employer); } public function formIDinsert() { $postform = Input::all(); //insert data into mysql table $data = array('employeeID'=> $postform['employeeID'],$employer); } public function edit($id) { try { //Find the user object from model if it exists $user=DB::table('employee')->where('employeeID',$id)->get(); //$user = User::findOrFail($id); //Redirect to edit user form with the user info found above. return view('myform.edit')->with ('user',$user); //return view('myform.edit')->with('user',myform::find($id)); } catch (ModelNotFoundException $err) { //redirect to your error page } } // Update user public function update(Request $request,$id) { try{ //Find the user object from model if it exists $user= myform::findOrFail($id); DB::table('employee') ->where('employeeID',$id) ->update(['employeeNo' =>$request['employeeNo'],'Cname'=>$request['Cname'],'phoneNumber'=>$request['phoneNumber'],'address'=>$request['address'] ]); //Set user object attributes //the $request index should match your form field ids!!!!! //you can exclude any field you want. // $user->employeeNo = $request['employeeNo']; // $user->Cname = $request['Cname']; // $user->phoneNumber = $request['phoneNumber']; // $user->address = $request['address']; //Save/update user. $user->save(); return view('myform.index')->with('user',$user); //redirect to somewhere } catch(ModelNotFoundException $err){ //Show error page } } } 模型“myform.php”是 <?php namespace App; use IlluminateDatabaseEloquentModel; class myform extends Model { protected $table = 'employee'; //protected $primaryKey = 'employeeID'; /** * The attributes that are mass assignable. * * @var array */ protected $fillable = [ 'employeeID','employeeNo','Cname','dob','phoneNumber','address',]; /** * The attributes that should be hidden for arrays. * * @var array */ protected $hidden = [ 'password','remember_token',]; } Routes.php是 Route::any('myform',function() { return view('myform/myform'); }); Route::any('myform/myform','myformController@formInsert'); Route::any('myform/index','myformController@getIndex'); //to show edit form and fetch passed user id info from db Route::get('myform/edit/{id}','myformController@edit'); //to get the edited info and save it to db Route::get('myform/update/{id}','UserController@update'); Route::any('myform/index','myformController@formIDinsert'); Route::any('myform/delete/{id}','myformController@delete'); 解决方法
你想改变你的路线:
Route::get('myform/update/{id}','UserController@update'); 至 //Because the data in your form is transferred/submitted by post request Route::post('myform/update/{id}','UserController@update'); 然后将更新功能更改为此 // Update user public function update(Request $request,$id) { try{ //Find the user object from model if it exists $user= myform::findOrFail($id); //$request contain your post data sent from your edit from //$user is an object which contains the column names of your table //Set user object attributes $user->employeeNo = $request['employeeNo']; $user->Cname = $request['Cname']; $user->dob = $request['dob']; $user->phoneNumber = $request['phoneNumber']; $user->address = $request['address']; // Save/update user. // This will will update your the row in ur db. $user->save(); return view('myform.index')->with('user',$user); } catch(ModelNotFoundException $err){ //Show error page } } 如果您有任何问题或需要澄清,欢迎您提问:) 在编辑视图中更新 改变这一点 <form class="form-horizontal" role="form" method="POST" action="{{ url('myform/myform/') }}"> 至 <form class="form-horizontal" role="form" method="POST" action="{{ url('myform/update/').$user->employeeID}}"> 将$user-> employeeID更改为您的主键. 也改变这个 <button type="submit" class="btn btn-warning"><a href="{{ url('myform/update/'.$use->employeeID) }}"> Update</a> </button> 对此 <button type="submit" class="btn btn-warning">Update</button> 如前所述,Aso你没有修复你的路线. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |