2017-08-21 55 views
0

我有一个双层嵌套的hasOne关系,并且最终关系似乎为空值。Laravel - 嵌套关系显示为空

我的在线招聘关系有以下几点:

<?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'); 
    } 
} 

我JobRequest型号有以下几点:

<?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'); 
    } 
} 

而且我JobGroup有以下几点:

<?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'); 
    } 
} 

我访问他们在我的控制器像这样:

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

它查询正确的Debugbar(是用于job_groups查询给出的数据),但是当我甩$job_applications,jobgroup显示空

enter image description here

回答

0

不需要跃跃欲试加载它。我可以像这样访问它

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