Laravel 关系

Laravel relation

这是我的亲戚:

App\Square\Topics\Topic::find(1)->subscriptions()->get();

我收到了回复:

>>> App\Square\Topics\Topic::find(1)->subscriptions()->get();
=> Illuminate\Database\Eloquent\Collection {#786
     all: [
       App\Square\Subscriptions\Subscription {#787
         id: 1,
         user_id: 1,
         subscription_id: 1,
         subscription_type: "App\Square\Topics\Topic",
         created_at: "2016-10-03 16:08:31",
         updated_at: "2016-10-03 16:08:31",
       },
     ],
   }

我如何获得此关系的用户?

要获取订阅的用户,您可以在订阅模型中定义此方法:

public function user()
{
    return $this->belongsTo(User::class);
}

这将允许您将用户作为订阅对象的属性来调用。

所以,然后你可以写一个foreach来获取相关订阅的每个用户,像这样:

$subscriptions = App\Square\Topics\Topic::find(1)->subscriptions()->get();
foreach ($subscriptions as $subscription) {
    $u = $subscription->user;
}

希望对您有所帮助!