我知道这是一个非常基本的问题。但我没有在互联网上找到答案。
这是我的数据库:
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();
谢谢
答案 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();