我有 3 个模型,Trials 有一个样本,track 有一个试验,我需要访问样本名称,我尝试这样做,但收到此错误:
BadMethodCallException in Builder.php line 2024: Call to undefined method Illuminate\Database\Query\Builder::samples()
Controller :
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('App\trial');
}
试用:
class trial extends Model
{
protected $fillable = ['amount','date','comments','code'];
public function Samples()
{
return $this->hasOne('App\samples', 'id', 'samples_id');
}
public function Track()
{
return $this->belongsTo('App\track');
}
}
轨道:
class track extends Model
{
public function Trials()
{
return $this->hasOne('App\trial', 'id', 'trials_id');
}
}
最佳答案
尝试一下
$tracks = track::with('trials.samples')->where('trials_id',$id)->get();
引用:- Nested Eager Loading
关于php - 如何访问与另一表相关的一列 Laravel 5.1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34154292/