字段 | 说明 |
---|---|
id | 主键 |
title | 菜品名称 |
... | 省略 |
字段 | 说明 |
---|---|
id | 主键 |
title | 规格名称 |
foods_id | 菜品表ID |
price | 价格 |
..... | 省略 |
菜品模型:FoodsModel
class FoodsModel extends Model
{
// 省略
/**
* 规格
* @return HasMany
*/
public function specs()
{
return $this->hasMany(\App\Model\FoodsSpecsModel::class, 'foods_id', 'id');
}
// 省略
}
菜品规格模型:FoodsSpecsModel
class FoodsSpecsModel extends Model
{
protected $table = 'foods_specs';
protected function foods()
{
return $this->belongsTo('App\Model\FoodsModel', 'foods_id', 'id');
}
}
根据菜品价格区间查询筛选菜品:
FoodsModel::with(['specs' => function($query){
$query->select(['title', 'price']);
}])
->whereHas('specs', function ($query) use ($params){
// price_from,price_end对应价格区间, 可选参数
if (isset($params['price_from']) && isset($params['price_end'])){
$query->whereBetween('price', [$params['price_from'], $params['price_end']]);
}
})->select('title')->get();
标签: laravel