【发布时间】:2016-04-22 17:49:33
【问题描述】:
我正在尝试使用 Laravel 构建一个(稍微复杂的)订阅服务。
订阅将属于以下类型: 早餐订阅,可在注册后 30 天内使用 20 份早餐。
例如,如果用户在 4 月 1 日注册早餐订阅,他可以选择任意 20 天使用,直到 4 月 30 日。
我已经制作了以下表格和相应的模型:
用户模型和表格
Users:
- id
- name
- email
etc
订阅表和模型
Subscriptions:
- id
- name
- price
- validity
- meals_available
带有 softDeletes 的订阅用户数据透视表 (?)
- subscription_id
- user_id
- start_date
- end_date
- created_at
- updated_at
- deleted_at
我已经用 belongsToMany 关系更新了相应的模型
用户:
class User extends Authenticatable
{
...
/*
* User can have many subscriptions
*/
public function subscriptions()
{
return $this->belongsToMany('App\Subscription')->withTimestamps();
}
}
订阅模式
class Subscription extends Model
{
...
/*
* Subscription can have many Users
*/
public function users()
{
return $this->belongsToMany('App\User')->withTimestamps();
}
}
我需要帮助的问题 1. 数据库/模型结构是否正确解决问题?
虽然我可以使用 attach() 和 detach() 方法,但我无法在 subscription_table 中填写 start_date 和 end_date 值。这个怎么做?
我想在数据透视表上使用软删除。我该如何使用它?
提前致谢。
【问题讨论】: