当前位置: 首页 > 知识库问答 >
问题:

Laravel雄辩地告诉我们如何选择和操作数据透视表中的行?

谢英光
2023-03-14

我有三个数据库表,分别称为user(id,name)、group(id,name)和user_group(user_id,group_id,valid_before),它们之间有多对多的关系。

class User extends Model
{
    protected $table = 'user';

    public function groups()
    {
    return $this->belongsToMany(Group::class, 'user_group')
        ->withPivot('valid_before');
    } 
}

class Group extends Model
{
    protected $table = 'group';

    public $timestamps = false;

    public function user()
    {
        return $this->belongsToMany(User::class, 'user_group');
    }
}

用户可以是某个组的成员,直到时间时刻'valid_before'。如果valid_before小于当前时间,则必须将用户从组中排除,并且必须删除数据透视表中的相应行。我如何在透视表行中选择strtotime($valid之前)

共有1个答案

田博易
2023-03-14

然后简单地使用disach($group_id),如下所示:-

$user = User::find($id);
if(time_exceeded($user->id))  //checks if user should stay in a group
$user->groups()->detach($group_id);

使用此链接进行推荐

 类似资料:
  • 我正在使用Laravel5.1进行CMS开发。我有一个简单的帖子结构,用户和用户都可以喜欢帖子。 帖子和用户有多对多关系,并使用数据透视表来表示关系。 职位模型有 用户模型有 我想列出用户的最新活动。例如。 Username1喜欢Post2 Username5喜欢Post9 用户名30喜欢Post25 我知道我必须像这样编写sql查询- 上面的查询工作正常,但有没有办法使用laravel雄辩?

  • 问题内容: 我有四个表: foods: id, name users: id, name mealtypes: id, name food_user: id, food_id, user_id, mealtype_id 食物和使用者之间存在多对多关系膳食类型与food_user一对一关系 最后,我希望有一个具有以下属性的模型实例:food.name,users.name,meattype.name

  • 假设我在表中有7列,我想只选择其中的两列,类似这样 在laravel雄辩的模型中,它可能是这样的 但我猜这个表达式将选择id等于1的所有列,我只需要两列(名称、姓氏)。如何只选择两列?

  • 雄辩的关系如下: 商店属于许多商店时代(属于许多) 数据透视表(store\u day\u time\u stores)有一个名为“user\u id”的键,storedaytimes表有一个名为“date”的字段。 我想根据给定的“用户id(来自数据透视表)”和“开始”和“结束”日期(来自storedaytime表)过滤“storedaytimes”中的记录。 我现在的问题是 它产生了一个看起来

  • 我有这种多对多的关系Laravel雄辩的关系模型是: 我可以在控制器中执行此操作: 在这里,我只通过直接枢轴关系获得email_subtype_id,但必须做额外的工作来获得相关的电子邮件子类型名称。 我需要获得电子邮件子类型名称[直接]从第三个模型电子邮件子类型关系oneTo很多[有很多和属性到]涉及到枢轴模型与电子邮件子类型模型使用类似的东西: 请帮忙!

  • 我有一个Laravel后端和一个VueJS前端。 我试图在一个具有hasOne关系的模型上生成一个查询,但只从关系中选择特定的列,做一个sum和一个group By。 null