0
私はここで私の髪を引っ張っています、私はほとんど同じelequentクエリを持っています。彼らは同様の結果をもたらすべきですが、そうではありません。コントローラと出力の違いの両方でReportsDataのLaravel Elevent relationships
をメモ、特にreports_data ":[]の関係、それは予想通り、第二は何かをつかむしない出力する第1の例
。私は、私は今、時間の私の髪を引っ張ってきた:(ここで
は私のコードで、誰かがこの上でいくつかの光を当てることができると思いますコントローラ
$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();
$レポートには、次の
[{"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"}]}]
$は出力レポートを出力し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
ReportsReportController// 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');
}
// 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テーブル
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テーブル
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テーブルFIXED
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
other_key FOREIGN_KEYを必要としていました。 'publicResponseData()'は 'reportsData'で、' with( 'ReportsData') 'は' ReportsReporter'の 'with( 'reportsData')'でなければなりません。 https://github.com/alexeymezenin/laravel-best-practices#follow-laravel-naming-conventions – cbaconnier
私は自分自身をほとんど蹴ったが、それでも問題は解決しなかった。 –
あなたの外部キーが間違っているように上記のコードを更新します。あなたのデータベーススキーマを見ることはできますか? – cbaconnier