Laravel 4.2只使用数据透视数据从main获取数据?

时间:2015-08-18 07:36:31

标签: php mysql laravel eloquent relational-database

我有一个名为emails的表,它有一个数据透视表,在该数据透视表中有一个名为" hash"的列。那个散列也属于电子邮件吗?

我试过了,

$email = Email::with(array('projects' => function($query) use($id) {
    $query->where('hash', '=', $id); 
}))->get(); 

但是这会返回电子邮件表中的所有行,而不仅仅是与散列匹配的行。有没有办法搜索数据透视表并从电子邮件表中找回相关的行?

1 个答案:

答案 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
}