按数量计算总价格

时间:2018-04-13 06:23:10

标签: php laravel laravel-5

我知道这是一个非常基本的问题。但我没有在互联网上找到答案。

这是我的数据库:

struct student  ab[4];
struct student* a[4]
/* ... code ...*/
for (i=0; i<4; i++)
{
  a[i] = &ab[i];
}
/* ... code ...*/

我只想通过乘以价格*数量来计算总价。

我应该在哪里这样做?在控制器或型号?

这是控制器:

        $table->string('title');
        $table->integer('quantity');
        $table->double('price');
        $table->double('total')->nullable();

谢谢

3 个答案:

答案 0 :(得分:2)

在模型中,该方法可以在多个路径/控制器中重用。像这样:

public function setTotal() {
    $this->total = $this->price * $this->quantity;
}

然后在控制器中:

$item = new Item();
$item->price = 10.0;
$item->quantity = 5;
$item->setTotal();
$item->save();

您可以将setTotal()添加到save()方法的覆盖中,或添加到数量和价格字段的设置者中,然后您就不需要在控制器中显式调用它。这里有很多选择,我只是展示了一个可行的选项。

答案 1 :(得分:1)

您可以在控制器上计算它,也可以在模型上计算。如果你想使用模型

转到app\Item.php并添加此

class Item extends Model {

public function setTotalAttribute()
{
    $this->total = $this->quantity * $this->price; 
}

public function getTotalAttribute($value)
{
    return $value;
}

}

这是控制器

$item = new Item();
$item->title = $request->title;
$item->price = $request->price;
$item->quantity = $request->quantity;
$item->save();

答案 2 :(得分:0)

您应该尝试使用控制器:

DB::table('yourtablename')->select(DB::raw('(price * quantity) as totalPriceQuantity'))->get();