如何使用 Eloquent ORM 获取特定列的值?

How to get a particular column value by using Eloquent ORM?

我有两个迁移 tables 和两个模型

1)用户。 2)订阅。

在订阅模型中,我编写了一个名为 user() 的方法,它具有 hasMany 关系,在用户模型中,它将包含具有 belongs() 关系的 subscriptions() 方法。

在用户table中id充当主键,在订阅table中sub_id充当外键,例如,如果用户订阅了任何订阅,用户id将存储在订阅 table 的 sub_id 中,到目前为止它工作正常。

 $is_subscription=Subscription::where('sub_id',$user->id)->value('sub_id');

从上面的代码我可以得到值,但现在我想要的是有没有更好的方法来编写基于模型的查询,请帮我写这个..

您可以使用pluck()方法:

$is_subscription=Subscription::where('sub_id',$user->id)->pluck('sub_id');

您可以使用 Laravel Documentation

找到有关可用于收集的方法的详细信息

根据您的描述,我相信您的情况是这样的:

class User extends Model
{
    public function subscriptions()
    {
        return $this->hasMany(Subscription::class);
    }
}

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

所以您想检查用户是否有任何订阅。您可以执行以下操作之一:

$user->subscriptions()->exists();

// Or

$user->subscriptions->isNotEmpty();