You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel8如何在控制器中调用模型的Float返回类型函数?

在Laravel中调用模型自定义函数的两种方法

方法一:直接遍历调用模型方法

你已经在Position模型里定义了getGrossTotal()函数,当通过Position::with(['article'])->get()获取到集合后,每个$position都是模型实例,直接在遍历的时候调用该方法即可:

控制器/视图中使用示例

// 控制器中获取集合
$positions = Position::with(['article'])->get();

// 遍历集合调用方法
foreach ($positions as $position) {
    $grossTotal = $position->getGrossTotal(); // 直接调用模型方法
    // 后续逻辑处理,比如赋值到数组或直接输出
}

方法二:转为Laravel访问器(更符合框架习惯)

如果希望像访问模型属性一样使用这个计算值,可以把方法改成Laravel的访问器,这样代码更简洁,也符合Laravel的属性访问规范:

修改模型中的方法为访问器

// Position模型中修改方法命名
public function getGrossTotalAttribute(): float
{
    return $this->amount * 2;
}

使用访问器(当作属性访问)

$positions = Position::with(['article'])->get();

foreach ($positions as $position) {
    $grossTotal = $position->gross_total; // 直接当作属性访问,无需加括号
}

注意:访问器的命名必须遵循get{驼峰命名}Attribute的规则,访问时则使用对应的蛇形命名(比如getGrossTotalAttribute对应gross_total)。

内容的提问来源于stack exchange,提问作者Priya Goud

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 23:18:42