php - 具有价格等级的 Laravel 逻辑

标签 php mysql laravel laravel-5 eloquent

我想知道是否有人可以指出正确的方向。

我有一个基于 Laravel 构建的电子商务平台,非常有用!不过,我现在想为某些产品引入价格等级。

例如,我有一件商品的价格为 10.00 英镑。

我想为这个项目引入多个定价层

  • 1 到 10 之间的订单 = 单价为 £10.00
  • 11 点到 15 点之间的订单 = 单价为 £8.00
  • 订单超过 16 人 = 单价为 £6.00

我想我会为我的产品表创建两个额外的表,称为层。

1 是 Product_tiers 包含

  • 产品编号
  • tier_id

另一个表Tiers

  • 编号
  • 等级名称
  • percentage_drop
  • 少于_数量

我的问题是在 Controller 中,当向平台持久化订单时,我将如何锻炼输入的订单数量是否在上述层级之一内?

任何人都可以指出正确的方向以便我进行研究吗?谷歌没有帮助

最佳答案

关系是正确的,唯一的问题在于 less_than_quantity 字段。首选 min_quantitymax_quantity 以更轻松地搜索合适的层级。

那么,您的决赛 table 是

product
 - id
 - name
 - price
 - blah blah...

tier
 - id
 - name
 - percentage_drop
 - min_quantity
 - max_quantity

product_tier
  - id
  - product_id
  - tier_id

你可以这样使用它

public function getProductTier($productId)
{
  $quantity = request()->get('quantity');

  $product = Product::find($id);
  $tiers = $product->tiers;

  $tier = $tiers->filter(function($tier) use ($quantity) {
    $quantity >= $tier->min_quantity && $quantity < $max_quantity;
  })->first();

  $final_rate = ($product->price - (($tier->drop_percentage/100) * $product->price));
}

关于php - 具有价格等级的 Laravel 逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41106449/

相关文章:

mysql - 用户 '' @'localhost' 对数据库 laravel 的访问被拒绝

css - 在 October CMS 中链接到图像作为背景图像属性的语法

database - 为不同的数据集构建数据库设计

php - 我这里的错误是什么,显示 SQL 语法错误?

c# - EntityFramework .Take() 随着时间的推移性能下降

php - php max_execution_time 实际测量的是什么?

php - 基于unix时间戳的自动化电子邮件的最佳解决方案

php - 动态显示选择的选项

php - 如何访问类中的PDO对象?

php - 搜索查询速度慢,基于 View 的记录集。如何加快速度?