Laravel Eloquent如何在数据透视表中选择和操作行?

亚历克斯

我有三个数据库表,分别称为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($ validBefore)<strtotime($ date)的行,然后使用Eloquent删除它们?

phpdroid

使用cronjob然后简单地使用detach($group_id)如下:

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

使用此链接进行参考

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Laravel刀片多项选择。如何在数据透视表中选择记录?

在数据透视表 Laravel 5.4 中选择字段

如何在 Laravel eloquent 中查询数据透视表的计数

Laravel 5:如何使用Eloquent在数据透视表上进行联接查询?

Laravel Eloquent - 数据透视表

如何从多个表中选择和获取数据(Laravel)

laravel 8如何使用hasMany在数据透视表上选择不为空

Laravel 多对多,如何在数据透视表中插入/获取数据?

Laravel Eloquent 如何为数据透视表选择使用条件“where”

Laravel:如何在数据透视表的显示视图中显示CategoryTitle

如何在数据透视表Laravel 5中为附加字段附加不同的值

如何在数据透视表Laravel中使用其他字段

如何在 Laravel 中使用附加或同步方法在数据透视表中插入多个值

如何在Laravel 5中使用Eloquent更新数据透视表

如何在laravel中选择数据?

如何在Laravel 5.6 Eloquent中选择多个表上的参数?

Laravel / Eloquent:数据透视表上的条件

Laravel Eloquent-查询数据透视表

如何在Laravel中将3表与数据透视表连接?

如何在Laravel数据透视表中与表列进行比较

如何在Laravel中为数据透视表编写关系?

如何在 Laravel 中使用数据透视表获取关系

如何在Laravel中创建数据透视表

如何在laravel中更新数据透视表?

如何在 Laravel 中验证数据透视表?

如果选择了多个图像,Laravel同步会在数据透视表中创建重复的日期

如何从Laravel 5.6中的数据透视表更新特定行?

如何从laravel 5.1中数据库表的created_at属性中选择年份和月份?

如何在Laravel中从数据库中选择最后一行