我有一个名为emails的表,它有一个数据透视表,在该数据透视表中有一个名为" hash"的列。那个散列也属于电子邮件吗?
我试过了,
$email = Email::with(array('projects' => function($query) use($id) {
$query->where('hash', '=', $id);
}))->get();
但是这会返回电子邮件表中的所有行,而不仅仅是与散列匹配的行。有没有办法搜索数据透视表并从电子邮件表中找回相关的行?
答案 0 :(得分:0)
在projects
课程中定义Email
方法时,可以使用withPivot
方法将数据透视列添加到模型中:
public function projects()
{
return $this->belongsToMany('Project')->withPivot('hash');
}
然后您可以通过以下方式使用它:
$email = Email::with(['projects' => /* ... */])->get();
foreach ($email as $item) {
echo $item->title; // regular field on `email`
echo $item->pivot->hash; // field on the pivot table
}