【发布时间】:2016-04-04 12:24:49
【问题描述】:
我只是在我的应用程序中实现 CRUD,但 UPDATE 没有更新数据库中的数据 I var_dump($user->name) 但它什么也没输出。请看一下代码并帮助我。我正在使用 Laravel 5.2 和资源控制器。
PS:编辑工作正常,例如在此 URL http://localhost/pos/users/6/edit?id=6 上,我可以使用所需数据填充视图字段,但是当我点击更新时,数据库中没有任何更新。
用户控制器:
public function edit($id)
{
$user = User::find($id);
return view('user.update')->with('userToUpdate',$user);
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
$user = User::find($id);
$user->name = Input::get('name');
$user->email = Input::get('email');
$user->password = bcrypt(Input::get('password'));
$user->save();
return Redirect::to('/users')->with('message', 'User Updated');
}
更新视图:
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="panel panel-default">
<div class="panel-heading">Update</div>
<div class="panel-body">
<form class="form-horizontal" role="form" method="PUT" action="{{ url('/users') }}">
{!! csrf_field() !!}
<div class="form-group{{ $errors->has('name') ? ' has-error' : '' }}">
<label class="col-md-4 control-label">Name</label>
<div class="col-md-6">
<input type="text" class="form-control" name="name" value="{!! $userToUpdate->name !!}">
</div>
</div>
<div class="form-group{{ $errors->has('email') ? ' has-error' : '' }}">
<label class="col-md-4 control-label">E-Mail Address</label>
<div class="col-md-6">
<input type="email" class="form-control" name="email" value="{!! $userToUpdate->email !!}">
</div>
</div>
<div class="form-group{{ $errors->has('password') ? ' has-error' : '' }}">
<label class="col-md-4 control-label">Password</label>
<div class="col-md-6">
<input type="password" class="form-control" name="password" value="{!! $userToUpdate->password !!}">
</div>
</div>
<div class="form-group">
<div class="col-md-6 col-md-offset-4">
<button type="submit" class="btn btn-primary">
<i class="fa fa-btn fa-user"></i>Update
</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
用户模型:
<?php
namespace App;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
}
路线:
Route::group(['middleware' => 'web'], function () {
Route::get('/', function () {
return view('welcome');
});
Route::auth();
Route::get('/home', 'HomeController@index');
Route::get('/register', function(){
return view('auth.register');
})->middleware('isAdmin');
Route::resource('/users', 'UsersController');
});
【问题讨论】:
-
在 HTML 表单中使用 PUT 方法是非标准的。当我尝试它时,我让它表现得像一个 GET 表单。
-
@apokryfos PUT 用于更新,我还能添加什么?
标签: php database laravel laravel-5 laravel-5.2