我有这个notifications
表,其中有一个status
列。除其他外,状态可能是“ ack”和“ noack”。因此,通知属于用户。如果要使用ORM查看用户的通知,可以在用户模型中使用hasMany()
,例如:
public function notificaciones()
{
return $this->hasMany('App\Notification', 'dest_id', 'id');
}
这很好用。 (dest_id表示通知是针对谁的,还有另一个origin_id可以告诉谁是导致通知的原因,无论如何,这都是有效的)
现在,我只想查看未确认(noack)的通知,我在想:
public function notificaciones()
{
return $this->hasMany('App\Notificacion', 'dest_id', 'id')
->where('status', 'noack');
}
但这会产生一个空集合。
这怎么实现?
答案 0 :(得分:4)
您可以做类似的事情,
您在同一模型中创建一个新函数,并以获取noack
通知为条件调用该核心方法。
public function noack_notifications() {
return $this->notificaciones()->where('status','=', 'noack');
}
当您通过控制器使用find调用此方法时。
$user = User::find($id);
dd($user->noack_notifications()->get());
这应该可以解决您的问题。