无法更新laravel 5.2

时间:2016-08-05 23:54:18

标签: php laravel-5.2

我有2个数据库: 1.用户(姓名,用户名,密码,remember_token,admin) 2. dosen(iddosen,user_id,namadosen,nipy等)

我想更新数据,但是当我点击保存时,它没有更新到数据库。单击“保存”时没有错误。

在编辑视图中我使用关系
    {! Form :: model($ user-> dosen,[' route' => [' admin.dosen.update',$ user-> dosen-> user_id], '方法' =>' PUT'])!!}

这是我的方法:

public function update($id)
{
    $userUpdate = Request::all();
    $user = User::find($id);
    $user->update($userUpdate);
    return redirect('admin/dosen')->with('message', 'Data berhasil diubah!');
}

修改视图:

@extends('layouts.app')
@section('content')

<div class="container">
<div class="row">
    <div class="col-md-10 col-md-offset-1">
        <div class="panel panel-default">
            <div class="panel-heading">Edit {{ $user->dosen->namadosen }}</div>

            <div class="panel-body">
                <!-- jika terjadi error, akan menampilkan pesan -->
                        @if ($errors->any())
                            <ul class="alert alert-danger">
                            @foreach ($errors->all() as $error)
                                <li>{{ $error }}</li>
                            @endforeach
                            </ul>
                        @endif

                        {!! Form::model($user->dosen, ['route' => ['admin.dosen.update', $user->dosen->user_id], 'method' => 'PUT']) !!}

                            <div class="form-group">
                                {!! Form::label('iddosen', 'Kode Dosen') !!}
                                {!! Form::text('iddosen', null, ['class' => 'form-control', 'readonly' => 'true']) !!}
                            </div>

                            <div class="form-group">
                                {!! Form::label('nipy', 'NIPY') !!}<br>
                                {!! Form::text('nipy', null, ['class' => 'form-control']) !!}
                            </div>

                            <div class="form-group">
                                {!! Form::label('namadosen', 'Nama Dosen') !!}
                                {!! Form::text('namadosen', null, ['class' => 'form-control']) !!}
                            </div>

                            <div class="form-group">
                                {!! Form::label('alamatdosen', 'Alamat') !!}
                                {!! Form::textarea('alamatdosen', null, ['class' => 'form-control']) !!}
                            </div>

                             <div class="form-group">
                                {!! Form::label('notelpdosen', 'No HP Dosen') !!}
                                {!! Form::text('notelpdosen', null, ['class' => 'form-control']) !!}
                            </div>

                             <div class="form-group">
                                {!! Form::label('tempatlahirdosen', 'Tempat & Tanggal Lahir') !!}
                                <div class="form-inline">
                                {!! Form::text('tempatlahirdosen', null, ['class' => 'form-control']) !!}
                                {!! Form::text('tanggallahirdosen', null, ['class' => 'form-control']) !!}
                            </div>
                            </div>



                            {{ Form::button('<i class="fa fa-check-square-o"></i> Simpan', ['type' => 'submit', 'class' => 'btn btn-primary'] )  }}
                            <a class="btn btn-small btn-success" href="{{ URL('dosen/') }}"><i class="fa fa-reply"></i> Kembali</a>

                        {!! Form::close() !!}

                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
</div>
@endsection

2 个答案:

答案 0 :(得分:2)

从表单中看,您希望更新dosen表,而不是user表。你必须明确地这样做。 $user->update()只会更新您的name, username, password字段。

所以请返回关系,然后更新它。

public function update($id)
{
    $dosenUpdate = Request::all();
    $user = User::find($id);
    $user->dosen()->update($dosenUpdate);
    return redirect('admin/dosen')->with('message', 'Data berhasil diubah!');
}

答案 1 :(得分:0)

您似乎缺少用户表中的updated_at列。 因此,我们尝试使用&#34; DATETIME&#34;添加updated_at列。数据类型并再次测试。

您还应该检查应用程序的错误日志文件中的消息。它通常在您的虚拟主机中配置,或者它是Apache的默认错误日志文件。

除此之外,您应该检查是否已在config / app.php中启用调试模式以查看错误消息。

'debug' => env('APP_DEBUG', true),

如果是这样,错误消息将存储在storage / logs / laravel.log中。