2015-10-08 81 views
1

我的模型是患者 - >的Sample-> Ready_Sample,关系都是一对多, 我的问题是我查询Ready_Sample需要知道patient.nameLaravel5.1查询关系(雄辩ORM)

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如何获得Patien.name?

回答

0

您可以通过下面的代码获得patient.name

$readySample = Ready_Sample_Model::first(); // fetch the first record 

echo $readySample->sample->patient->name; 

希望它能帮助!

+0

谢谢,但我有很多这种关系。例如:patient-> sample-> ready_saple-> xxx-> xxx-> xxx-> xxx-> demo,但是演示我也得到了一个patient.name。我应该写关系的行代码?.... –