64 lines
1.5 KiB
PHP
64 lines
1.5 KiB
PHP
<?php
|
||
|
||
namespace App\Models;
|
||
|
||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||
use Illuminate\Database\Eloquent\Model;
|
||
|
||
class Food extends BaseModel
|
||
{
|
||
use HasFactory;
|
||
|
||
const TYPE_FOOD = "FOOD";
|
||
const TYPE_NUTRIENT = "NUTRIENT";
|
||
|
||
public function scopeKeyword($query)
|
||
{
|
||
$keyword = request()->keyword;
|
||
if ($keyword) {
|
||
return $query->where("name", 'like', '%'.trim($keyword).'%');
|
||
}
|
||
return $query;
|
||
}
|
||
|
||
public function scopeType($query)
|
||
{
|
||
$type = request()->type;
|
||
if ($type) {
|
||
return $query->where("type", $type);
|
||
}
|
||
return $query;
|
||
}
|
||
|
||
public function scopeHasStock($query)
|
||
{
|
||
$has_stock = request()->input('has_stock', 1); // 0: 不筛选 1 有库存,2无库存
|
||
if ($has_stock) {
|
||
return $query->whereHas("shopSpu.shopSku.realObject", function($sql) use($has_stock){
|
||
if ($has_stock == 1) { // 有库存
|
||
$sql->where("stock", ">", 0);
|
||
} else { // 无库存
|
||
$sql->where("stock", 0);
|
||
}
|
||
|
||
});
|
||
}
|
||
return $query;
|
||
|
||
}
|
||
|
||
public function shop()
|
||
{
|
||
return $this->belongsTo(Shop::class, 'shop_id', 'id');
|
||
}
|
||
|
||
public function shopSpu()
|
||
{
|
||
return $this->belongsTo(S2ShopSpu::class, 'shop_id', 'id');
|
||
}
|
||
public function scopeShow($query)
|
||
{
|
||
return $query->where('is_sale', 1);
|
||
}
|
||
}
|