对于我希望获得有效优惠券的产品。一次只能有一张活动优惠券。
我的产品 - Modal看起来像这样:
class Product extends Model
{
public $table_name = 'products';
protected $hidden = [
'coupons',
];
public function coupons() {
return $this->hasMany('App\Models\Coupon', 'dish_id');
}
public function activeCoupons() {
$instance = $this->hasMany('App\Models\Coupon', 'dish_id');
$instance->getQuery()->where('start', '<', new \DateTime());
$instance->getQuery()->where('end', '>', new \DateTime());
return $instance;
}
}
我使用JSON-API将产品交付给应用程序。
从数据库中获取数据后,我现在正在做一些非常难看的事情:
$product['coupon'] = $product->activeCoupons[0];
我这样做,因为我不想在我的JSON中返回一系列activeCoupons。我想退回有效优惠券或null。
有更好的方法吗?
答案 0 :(得分:0)
另一种方法是:
$product['coupon'] = $product->activeCoupons()->first();
甚至使用limit
。这个想法是:
public function activeCoupons() {
return $this->hasMany('App\Models\Coupon', 'dish_id');
->where('start', '<', new \DateTime());
->where('end', '>', new \DateTime())
->limit(1);
}
答案 1 :(得分:0)
这似乎是您对Laerte的回复所要求的
<div class="dropdown">
<a id="dropbtn">Menu</a>
<ul id="dropdown" class="dropdown-content">
<li>ALL</li>
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
<li>item 4</li>
</ul>
</div>