在我的应用程序中,我有一个Notifications表和一个Users表,一个通知可以属于很多用户,所以在我的通知类中我有以下内容,
public function user()
{
return $this->belongsToMany('User');
}
在我的数据库中,我还有一个名为notification_user
的表,它位于我的notifications
表旁边。 notification_user
表包含以下行
notification_id,user_id,is_read,created_at,updated_at
我正在运行以下代码以返回特定用户的通知
$notifications = Notification::whereHas('user', function($q){
$q->where('user_id', '=', 101);
})->get();
我发现的问题是,这不会从我迫切需要的notification_user
表中返回is_read属性!我试过添加,
$notification->load('user')
,但这只是将用户数据添加为对象。
是否还可以获取关系表数据?
答案 0 :(得分:0)
您需要在关系中添加一些额外内容,以告诉laravel从数据透视表中提取额外数据。 (不要忘记在你的关系中的另一个模型上这样做)
import pandas
df = pandas.read_csv("data.csv")
dfe = pandas.ewma(df, span=60)
然后,您应该在模型上使用public function user()
{
return $this->belongsToMany('User')->withPivot('is_read');
}
属性,并使用->pivot
属性。 (例如:$ notification-> pivot-> is_read)文档http://laravel.com/docs/5.0/eloquent#working-with-pivot-tables
如果您已拥有用户ID,只是为了让自己更轻松,您是否只能使用它们之间的关系?
is_read