2017-08-21 4 views
0

Ich habe eine geschachtelte hasOne-Beziehung in zwei Ebenen und die endgültige Beziehung scheint Nullwerte zu geben.Laravel - geschachtelte Beziehung zeigt null

Meine JobApplication Beziehung hat folgende:

<?php 

namespace App\Model; 

use Illuminate\Database\Eloquent\Model; 

class JobApplication extends Model 
{ 
    protected $table = 'job_applications'; 
    protected $primaryKey = 'job_application_id'; 

    public function jobrequest() 
    { 
     return $this->hasOne('App\Model\JobRequest', 'job_request_id', 'job_request_id'); 
    } 
} 

Mein JobRequest Modell hat die folgenden:

<?php 

namespace App\Model; 

use Illuminate\Database\Eloquent\Model; 

class JobRequest extends Model 
{ 
    protected $table = 'job_requests'; 
    protected $primaryKey = 'job_request_id'; 

    public function jobgroup() 
    { 
     return $this->hasOne('App\Model\JobGroup', 'job_group_code', 'job_group_code'); 
    } 

    public function jobapplication() 
    { 
     return $this->belongsTo('App\Model\JobApplication', 'job_request_id'); 
    } 
} 

Und mein JobGroup hat folgendes:

<?php 

namespace App\Model; 
use Carbon; 

use Illuminate\Database\Eloquent\Model; 

class JobGroup extends Model 
{ 
    protected $table = 'job_groups'; 
    protected $primaryKey = 'job_group_code'; 

    public function jobrequest() 
    { 
     return $this->belongsTo('App\Model\JobRequest', 'job_group_code'); 
    } 
} 

ich auf sie in mein Controller wie folgt:

$job_applications = JobApplication::with(['jobrequest', 'jobrequest.jobgroup']) 
     ->where('user_id', Auth::id()) 
     ->first(); 

Es fragt direkt am DebugBar (und ja die Abfrage für job_groups gibt Daten aus), aber wenn ich $job_applications abgeladen, jobgroup zeigt null

enter image description here

Antwort

0

Dont es eifrig Last benötigen. Ich kann darauf wie folgt zugreifen

$job_applications = JobApplication::with('jobrequest')->where('user_id', Auth::id())->first(); 
dd($job_applications->jobrequest->jobgroup);