mysql - 所需产品选项 laravel

标签 mysql laravel laravel-4 e-commerce relationships

我正在使用 laravel 4 构建一个电子商务应用程序 我迷失了管理税收和期权的正确方法。 这是我在数据库中所做的:

products table: id,name,price,id_taxe
Got a tax table : id,name,rate

使用 Laravel 模型来管理它非常简单

但是麻烦来自于那部分:

产品必须有一个具有自己的价格和税率的选项(与产品不同),选项有最小和最大数量,具体取决于所选的产品。

示例

如果我购买了产品 1(100 美元),选项 1 需要至少 1 数量(最少)最多 10 个产品(最多),如果我购买 11 x 产品 1,选项 1 需要至少 2 数量。

如果我购买了产品 2(200 美元),则需要选择 1 至少 1 种产品,最多 5 种产品。

我不知道如何以正确的方式管理这个问题。

我应该在产品表中创建类似产品的选项吗? 如何使用 Laravel 关系将产品与选项(包括最小和最大约束)链接起来。

感谢您的帮助。

最佳答案

好吧,我试试。

根据您的评论,最好的方法似乎是通过数据透视表链接选项,此外,在此数据透视表中应该有一个数字,指示您每购买 x 数量的产品就会收到多少个选项。

迁移:

Schema::create('product_options', function(Blueprint $table){
 $table->integer('product_id')->unsigned();
 $table->integer('option_id')->unsigned();

 $table->integer('per_x_products');

 $table->foreign('product_id')
  ->references('id')->on('products')
  ->onDelete('cascade')
  ->onUpdate('cascade');
 $table->foreign('option_id')
  ->references('id')->on('options')
  ->onDelete('cascade')
  ->onUpdate('cascade');
}

产品表中的关系:

public function options(){
 return $this->belongsToMany('Option', 'product_options','product_id','option_id')
  ->withPivot(['per_x_products']);
}

订购产品后,您将获得产品的 ID 和订购的金额。您现在可以获得产品、相关选项以及选项增加的订购产品数量。

$product = Product::find($id);

foreach($product->options as $option){

 $perXProducts = $option->pivot->per_x_products

 $minusThis = $amountOrdered % $perXProducts;

 $amountOfOptions = ($amountOrdered - $minusThis) / $perXProducts;

 $optionAmountsById[$option->id] = $amountOfOptions;
}

你能尝试一下上面的方法,看看你能走多远吗?这是我最关心的事情,所以可能会有一些错误。另请看这里:

http://laravel.com/docs/4.2/eloquent#working-with-pivot-tables

关于mysql - 所需产品选项 laravel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27312226/

相关文章:

mysql - 如何将一些数据从一个表导入到另一个表(MYSQL)

mysql - SQL SUM 查询修改

php - 在 Codeigniter 中获取额外空间(如查询)

php - 在 Laravel 中创建一个 Insert...Select 语句

php - Laravel 4 从本地主机发送电子邮件到 gmail

php - POST undefined variable ,但 REQUEST 有效

laravel - 如何添加数据库中没有的字段?

git gitlab laravel 不是所有的文件都添加了

php - Laravel 迁移的外键问题

laravel - Laravel 如何创建数据透视表?