在laravel中,created_at
和updated_at
都会更新为相同的值。
我的表格:
{!! Form::model($user_data,array('url' => array('manageUsers', $user_data->id), 'files' => true,'method' => 'PUT', 'class'=>'validate','id'=>'xfrm_submit')) !!}
{!! Form::hidden('id',$user_data->id) !!}
<div class="form-group">
{!! Form::label( 'acceptor_name','Acceptor Name:' ) !!}
<span style="color:#ff0000;padding: 0 2px 2px 0">*</span>
<input id="acceptor_name"
name="acceptor_name"
type="text"
value="{{$user_data->acceptor_name}}">
</div>
</form>
我的操作员update
操作:
public function update(StoreUserManagment $request)
{
$user_data = User::find($request->input('id'));
$user_data->acceptor_name =$request->input('acceptor_name');
$user_data->save();
return redirect('manageUsers');
}
迁移文件:
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name', '20');
$table->string('family', '25');
$table->string('username', '15')->unique();
$table->string('password', '64');
$table->string('token', '50');
$table->string('email', '20')->unique();
$table->string('remember_token', '100');
$table->string('image_file_name', '50');
$table->string('mobile_number', '13');
$table->tinyInteger('status');
$table->text('account_state_note');
$table->timestamps();
});
}
答案 0 :(得分:2)
这是一个问题https://github.com/laravel/framework/issues/11518
我使用->nullableTimestamps()
代替->timestamps()
你可以试试这个,可能会起作用
答案 1 :(得分:1)
这不是Laravel或PHP问题,但这是MySQL 5.7更改(您可能使用MySQL 5.7)。要解决此问题,您需要允许时间戳为空,因此MySQL不会填充当前时间戳,因此在Laravel中您需要使用nullableTimestamps()
代替timestamps()
或使用timestamp()->nullable()
对于单个时间戳字段。
答案 2 :(得分:0)
您在控制器中调用save()
而不是update()