2016-08-05 22 views
1

ich habe 2 Datenbank: 1. Benutzer (Name, Benutzername, Passwort, remember_token, admin) 2. dosen (iddosen, user_id, namadosen, nipy usw.)kann nicht aktualisiert werden Daten in Laravel 5.2

Ich möchte Daten aktualisieren, aber wenn ich auf Speichern klicke, wird es nicht auf Datenbank aktualisiert. Es gibt keinen Fehler, wenn ich auf Speichern klicke.

in Bearbeitungsansicht Ich verwende Beziehung
{!! Form :: model ($ user-> dosen, ['route' => ['admin.daten.update', $ user-> dosen-> user_id], 'methode' => 'PUT']) !!}

das ist meine Methode:

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

Edit-Ansicht:

@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 
+0

Können Sie Ihr Benutzermodell anzeigen? – jaysingkar

+0

@jaysingkar Benutzermodell: 'public function dosen() { zurückgeben $ this-> hasOne ('App \ Dosen'); } ' Modell:' public function user() { Rückgabe $ this-> belongsTo ('App \ User'); } ' – Ezra

+0

Was ist der Primärschlüssel für Benutzer tbale? "id". Recht ? – jaysingkar

Antwort

2

Aus dem Formular sieht es so aus, als ob Sie die dosen Tabelle aktualisieren möchten, nicht die user. Sie müssen dies explizit tun. $user->update() aktualisiert nur Ihre name, username, password Felder.

Also lieber die Beziehung zurück und dann aktualisieren Sie es.

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

Fehler 'SQLSTATE [42S22]: Spalte nicht gefunden: 1054 Unbekannte Spalte' _method 'in' Feldliste '(SQL: Update 'dosen' Satz' _method' = PUT, '_token' = QWFo70aZUrny3RyPJRQyBJiLUGyWxtqjpdVxTaZj,' iddosen' = DSN003, 'nipy' = 31351.1351.13,' namadosen' = Dimas Sasongko, S.Kom, 'alamatdosen' = Surakartaaaaaa,' notelpdosen' = 856245242, 'tempatlahirdosen' = Solo,' tanggallahirdosen' = 1985-04-20, 'updated_at' = 2016-08-06 16:04:32 wo 'dosen'' user_id' = 74 und 'dosen'' user_id' ist nicht null) ' – Ezra

+1

Ändern Sie' $ dosenUpdate = $ request-> all(); 'to Fügen Sie nur die Felder in die Tabelle ein, die Sie benötigen, zB '$ dosenUpdate = $ request-> (['nipy', 'namadosen', 'alamatdosen']);'. –

+0

Danke, es funktioniert.update: '$ dosenUpdate = Anfrage :: nur (['nipy', 'namadosen', 'alamatdosen']);' – Ezra

0

Es sieht aus wie Sie updated_at Spalte in Benutzertabelle fehlen. Lassen Sie also versuchen, updated_at Spalte mit "DATETIME" -Datentyp hinzuzufügen und erneut zu testen.

Sie sollten auch Nachrichten in der Fehlerprotokolldatei Ihrer Anwendung überprüfen. Es wird normalerweise in Ihrem virtuellen Host konfiguriert oder es ist die Standardfehlerprotokolldatei von Apache.

Außerdem sollten Sie prüfen, ob Sie bereits den Debug-Modus in der config/app.php aktiviert haben, um Fehlermeldungen zu sehen.

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

Wenn ja, werden Fehlermeldungen bei der Lagerung/logs/laravel.log gespeichert werden.