【发布时间】:2016-03-13 06:41:37
【问题描述】:
我有 3 个模型,Trials 有一个样本,track 有一个 Trial,我需要访问样本名称,我尝试这样做但收到此错误:
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('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');
}
}
【问题讨论】:
-
samples() 方法未在 track 模型中定义。
-
这意味着我需要添加另一个外键来跟踪与样本相关的表?
标签: php mysql laravel laravel-5 laravel-5.1