2017-11-30 16 views
0

私はここで私の髪を引っ張っています、私はほとんど同じelequentクエリを持っています。彼らは同様の結果をもたらすべきですが、そうではありません。コントローラと出力の違いの両方でReportsDataLaravel 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 
+0

other_key FOREIGN_KEYを必要としていました。 'publicResponseData()'は 'reportsData'で、' with( 'ReportsData') 'は' ReportsReporter'の 'with( 'reportsData')'でなければなりません。 https://github.com/alexeymezenin/laravel-best-practices#follow-laravel-naming-conventions – cbaconnier

+0

私は自分自身をほとんど蹴ったが、それでも問題は解決しなかった。 –

+0

あなたの外部キーが間違っているように上記のコードを更新します。あなたのデータベーススキーマを見ることはできますか? – cbaconnier

答えて

0

!!

ReportsReporは、私は問題が命名からだと思い

public function ReportsData(){ 
    return $this->hasMany('App\reportsData', 'suspect_id', 'suspect_id'); 
} 
関連する問題