Laravel 5 Laravel雄辩地告诉我们如何选择和操作数据透视表中的行?
我有三个数据库表,分别称为user(id,name)、group(id,name)和user_group(user_id,group_id,valid_before),它们之间有多对多的关系Laravel 5 Laravel雄辩地告诉我们如何选择和操作数据透视表中的行?,laravel-5,eloquent,Laravel 5,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
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”小于当前时间,则必须将该用户从组中排除,并且必须删除透视表中的相应行。如何在pivot表中选择strottime($validBefore)
detach($group\u id)
如下所示:-
$user = User::find($id);
if(time_exceeded($user->id)) //checks if user should stay in a group
$user->groups()->detach($group_id);
将此代码用于引用此代码是否合适:$users=MyUser::all();foreach($users as$user){foreach($user->groups as$g){$validBefore=$g->pivot->valid_before;if(strotime($validBefore)