Ich ziehe mir die Haare raus, ich muss fast identische Anfragen stellen. Sie sollten ähnliche Ergebnisse bringen, sind es aber nicht.Laravel Elevente Beziehungen
Beachten Sie die ReportsData in beiden Controllern und die Differenz in der Ausgabe, insbesondere die reports_data "[] Beziehungen das erste Beispiel als erwarteten Ergebnisse, die zweite hat nichts greifen
..ich hoffe, dass jemand etwas Licht auf diesem verschütten kann, ich habe jetzt meine Haare seit Stunden ziehen :(
Hier ist mein Code
-Controller
$report = ReportsSuspect::where('id', '=', $id)
->with('serverModel')
->with('reportsReportModel')
->with('reportsReporter')
->with('reportsData')
->get();
$reports = ReportsReport::where('suspect_id', '=', $id)
->with('serverModel')
->with('reportsSuspect')
->with('reportsReporter')
->with('reportsData')
->get();
$ Bericht gibt die folgende
[{"id":4,"steamid":"0987654321","assigned":0,"archived":0,"created_at":"2017-11-30 14:03:45","updated_at":"2017-11-30 14:03:45","server_model":null,"reports_report_model":[{"id":9,"name":"hackerName","offence":"Hacking-ESP\/AIM, Toxic Behaviour","server":25,"suspect_id":4,"reporter_id":3,"created_at":"2017-11-30 14:03:45","updated_at":"2017-11-30 14:03:45"}],"reports_reporter":null,"reports_data":[{"id":16,"reporter_id":3,"suspect_id":4,"moderator_id":0,"comment":null,"url":"image1","comment_type":0,"url_type":1,"created_at":"2017-11-30 14:03:45","updated_at":"2017-11-30 14:03:45"},{"id":17,"reporter_id":3,"suspect_id":4,"moderator_id":0,"comment":null,"url":"video1","comment_type":0,"url_type":2,"created_at":"2017-11-30 14:03:45","updated_at":"2017-11-30 14:03:45"},{"id":18,"reporter_id":3,"suspect_id":4,"moderator_id":0,"comment":"I saw this guy hacking","url":null,"comment_type":1,"url_type":0,"created_at":"2017-11-30 14:03:45","updated_at":"2017-11-30 14:03:45"}]}]
Ausgänge $ berichtet die follwoing
[{"id":9,"name":"hackerName","offence":"Hacking-ESP\/AIM, Toxic Behaviour","server":25,"suspect_id":4,"reporter_id":3,"created_at":"2017-11-30 14:03:45","updated_at":"2017-11-30 14:03:45","server_model":{"id":25,"servername":"Rustafied Long","serverlocation":"US","available":1,"servertextname":"US - Long","servertype":1,"serverconnection":"","serverinfo":"","serverpopulation":"","created_at":null,"updated_at":null},"reports_suspect":{"id":4,"steamid":"0987654321","assigned":0,"archived":0,"created_at":"2017-11-30 14:03:45","updated_at":"2017-11-30 14:03:45"},"reports_reporter":{"id":3,"steamid":"76561198363172919","name":"Cake","created_at":"2017-11-30 09:21:40","updated_at":"2017-11-30 09:21:40"},"reports_data":[]}]
ReportsSuspectController
// Relationship data
public function reportsReport(){
return $this->belongsTo('App\reportsReport', 'reporter_id');
}
public function reportsData(){
return $this->hasMany('App\reportsData', 'suspect_id');
}
public function reportsReportModel(){
return $this->hasMany('App\reportsReport', 'suspect_id');
}
public function reportsReporter(){
return $this->belongsTo('App\reportsReporter', 'id');
}
public function serverModel(){
return $this->belongsTo('App\server', 'server');
}
ReportsReportController
// Relationship data
public function reportsSuspect(){
return $this->belongsTo('App\reportsSuspect', 'suspect_id');
}
public function reportsReporter(){
return $this->belongsTo('App\reportsReporter', 'reporter_id');
}
public function ReportsData(){
return $this->hasMany('App\reportsData', 'suspect_id');
}
public function serverModel(){
return $this->belongsTo('App\Server', 'server');
}
public function offenceModel(){
return $this->belongsTo('App\Offence', 'offence');
}
reports_data Tabelle
id int(10) No None
reporter_id int(11) Yes NULL
suspect_id int(11) Yes NULL
moderator_id int(11) No 0
comment text utf8_unicode_ci Yes NULL
url text utf8_unicode_ci Yes NULL
comment_type int(11) Yes 0
url_type int(11) Yes 0
created_at timestamp Yes NULL
updated_at timestamp Yes NULL
reports_report Tabelle
id i nt(10) No None
name text utf8_unicode_ci Yes NULL
offence text utf8_unicode_ci Yes NULL
server int(11) Yes NULL
suspect_id int(11) Yes NULL
reporter_id int(11) Yes NULL
created_at timestamp Yes NULL
updated_at timestamp Yes NULL
reports_suspect Tisch
idPrimary int(10) No None
steamid varchar(25) utf8_unicode_ci Yes NULL
assigned int(11) Yes 0
archived int(11) No 0
created_at timestamp Yes NULL
updated_at timestamp Yes NULL
ich denke, das Problem der Namensgebung ist. 'öffentliche Funktion ReportsData()' sollte 'reportsData' und' with ('ReportsData') 'sollte' mit ('reportsData') 'auch für' ReportsReporter' sein https://github.com/alexeymezenin/laravel-best-practices # follow-laravel-naming-conventions – cbaconnier
Ich habe mich fast getreten, aber das hat das Problem nicht gelöst. Ich werde den obigen Code aktualisieren, um das widerzuspiegeln –
Ihre Fremdschlüssel scheinen falsch zu sein. Können wir Ihr Datenbankschema sehen? – cbaconnier