我有3个模型,试验有一个样本,轨道有一个试验,我需要访问样本名称,我试图这样做,但得到了这个错误:
Builder.php第2024行中的BadMethodCallException:调用未定义方法Illuminate\Database\Query\Builder::samples()
控制器:
public function track($id){
$tracks = track::with('trials')->with('samples')->where('trials_id',$id)->get();
return view('Tracks.index',compact('tracks'));
}
样本:
class samples extends Model
{
protected $fillable = ['variety'];
public function Trials()
{
return $this->belongsTo('Apptrial');
}
试用版:
class trial extends Model
{
protected $fillable = ['amount','date','comments','code'];
public function Samples()
{
return $this->hasOne('Appsamples', 'id', 'samples_id');
}
public function Track()
{
return $this->belongsTo('Apptrack');
}
}
曲目:
class track extends Model
{
public function Trials()
{
return $this->hasOne('Apptrial', 'id', 'trials_id');
}
}
试试
$tracks = track::with('trials.samples')->where('trials_id',$id)->get();
参考:-嵌套的Eagle加载