Laravel5.1查询关系(Eloquent ORM)


Laravel5.1 query relationships(Eloquent ORM)

我的模型是Patient->Sample->Ready_Sample,关系是oneToMany,我的问题是我查询Ready_Sample需要知道patient.name

Patient_Model

class Patient_Model extends Base_Model {
    protected $table = 'patients';
    public function samples(){
        return $this->hasMany('App'Models'Sample_Model','patient_id','code');
    }   
}

Sample_Model

class Sample_Model extends Base_Model{
    protected $table = 'samples';
    public function patient(){
        return $this->belongsTo('App'Models'Patient_Model','patient_id','code');
    }
    public function ready_samples(){
        return $this->hasMany('App'Models'Ready_Sample_Model','sample_id','code');
    }
}

Ready_Sample_Model

class Ready_Sample_Model extends Model{
    protected $table = 'ready_samples';
    public function sample(){
        return $this->belongsTo('App'Models'Sample_Model','sample_id','code');
    }
}
在Sample_Controller

class Sample_Controller extends Controller{
    public function query(Request $request){
    $result = Sample_Model::with(['patient']);
        ->orderBy("updated_at","desc")
        ->Paginate(15)
        ->toJson();
   return $result;
}

在样本中我知道获取patient.name,但是Ready_Sample如何获取patient.name ?

您可以使用以下代码获取patient.name:

$readySample = Ready_Sample_Model::first(); // fetch the first record
echo $readySample->sample->patient->name;

希望有帮助!