user table
id
email
password
会员表
id
user_id
expiry_date
delivery_day_innum(eg:like 7,8 days)
交货明细表
id
user_id
created_at
updated_at
货物表
id
user_id
name
qty
货物表
id
user_id
name
qty
关系
user->hasOne(Membership::class)
user->hasMany(Deliverdetailes::class)
user->hasMany(Goods::class)
现在,我想得到帐户未过期且deliver_day_innum等于 当前日期与最新created_at日期之间的差异
$myGoods= Goods::join('user','user.id','goods.user_id')
->join('membership','membership.user_id','=','user.id')
->join('deliverdetailes','deliverdetailes.user_id','=','user.id')
->whereDate('expiry_date','>',Carbon::now())
->whereRaw('DATEDIFF(maxDate, CURDATE())=membership.delivery_day_innum')
->select('goods.*',DB::raw('max(deliverdetailes.created_at) as maxDate'))->get();
第一个问题:未过期帐户的商品:
调整 Carbon::now(( 以匹配expiry_date的日期格式。
$goods = Good::whereHas('user.membership', function($query){
return $query->where('expiry_date', '<=', Carbon::now());
})->get();
在应用\良好中必需:与应用\用户的关系。
public function user()
{
return $this->belongsTo('AppUser');
}
第二个问题:请澄清:"deliver_day_innum等于今天与最近created_at日期之间的差额"。