Ich benutze PHP, Laravel 5.2 und MySQL.Objekt mit Fremdschlüsseln in Laravel speichern
Während der Benutzerregistrierung muss ich einen neuen Patienten erstellen. Aber Patient hat Benutzer-ID, Kontakt-ID und Wächter-ID (Fremdschlüssel).
Wenn ich versuche,(), um den Patienten zu retten, erhalte ich die folgende Ausnahme:
SQLSTATE [42S22]: Column nicht gefunden: 1054 Unknown column 'patient_id' in 'Feldliste' (SQL: aktualisieren
users
gesetztpatient_id
= 0,updated_at
= 2016.06.07 00.59.35 woid
= 6)
Das Problem ist, dass ich nicht patient_id Spalte verfügen. Stattdessen habe ich patientId.
Ich weiß nicht, wie Sie dieses Problem beheben können. Jede Hilfe wird geschätzt. Ich kann die Migrationsdateien einbeziehen, wenn dies wichtig ist.
UserController.php
public function postSignUp(Request $request)
{
$this->validate($request,[
'email' => 'required|email|unique:users',
'name' => 'required|max:100',
'password' => 'required|min:6'
]);
$guardian = new Guardian();
$guardian->guardianId = Uuid::generate();;
$guardian->save();
$contact = new Contact();
$contact->contactId = Uuid::generate();
$contact->save();
$user = new User();
$user->email = $request['email'];
$user->name = $request['name'];
$user->password = bcrypt($request['password']);
$user->save();
$patient = new Patient();
$patient->patientId = (string)Uuid::generate();
$patient->user()->save($user);
$patient->contact()->save($contact);
$patient->guardian()->save(guardian);
$patient->save();
Auth::login($user);
// return redirect()->route('dashboard');
}
Patient.php
class Patient extends Model
{
protected $primaryKey='patientId';
public $incrementing = 'false';
public $timestamps = true;
public function user()
{
return $this->hasOne('App\User');
}
public function contact()
{
return $this->hasOne('App\Contact');
}
public function guardian()
{
return $this->hasOne('App\Guardian');
}
public function allergies()
{
return $this->belongsToMany('App\PatientToAllergyAlert');
}
public function medicalAlerts()
{
return $this->belongsToMany('App\PatientToMedicalAlert');
}
}
User.php
class User extends Authenticatable
{
protected $fillable = [
'name', 'email', 'password',
];
protected $hidden = [
'password', 'remember_token',
];
public function patient()
{
return $this->belongsTo('App\Patient');
}
}
contact.php
class Contact extends Model
{
protected $table = 'contacts';
protected $primaryKey = 'contactId';
public $timestamps = true;
public $incrementing = 'false';
public function contact()
{
return $this->belongsTo('App\Patient');
}
}
Guardian.php
class Guardian extends Model
{
protected $table = 'guardians';
protected $primaryKey = 'guardianId';
public $timestamps = true;
public $incrementing = 'false';
public function contact()
{
return $this->belongsTo('App\Patient');
}
}
danke für deine zeit ... ich werde versuchen, die änderungen jetzt vorzunehmen – dimitrisdan