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

如何将JavaScript的result值作为amount参数传递给Laravel函数

解决方案

你漏了两个核心步骤:前端发请求时未携带用户输入的金额参数,后端未从请求中读取该参数,按以下代码修改即可。

1. 调整前端JS逻辑

SweetAlert 弹窗的用户输入值存放在result.value字段,发axios请求时把该值放到POST请求体中传给后端,额外加个简单的输入校验避免非法值提交:

function makeOffer(nftid) {
    swal({
        title: "Do you want to make offer?",
        text: "Enter amount",
        input: 'text',
        type: 'warning',
        showCancelButton: true,
        showConfirmButton: true,
        confirmButtonColor: '#3085d6',
        cancelButtonColor: '#d33',
        inputValidator: (value) => {
            if (!value || isNaN(Number(value)) || Number(value) <= 0) {
                return '请输入有效的出价金额'
            }
        }
    }).then((result) => {
        if (result.value) {
            axios.post(`/myaccount/makeoffer/${nftid}`, {
                amount: result.value
            }).then(response => {
                window.location.reload();
            }).catch(err => {
                swal("出价失败", "请稍后重试", "error");
            });
        }
    });
}

如果你用的是v1版本的SweetAlert,输入值直接存在result变量上,把amount: result.value改成amount: result即可。

2. 调整后端Laravel控制器逻辑

在控制器中通过$request实例读取前端传过来的amount参数,赋值给模型字段,建议加参数校验过滤非法请求:

public function makeOffer($id, Request $request){
    // 参数校验
    $request->validate([
        'amount' => 'required|numeric|min:0.01'
    ]);

    $nft = NFT::findOrFail($id);
    if($nft->status == 'pending') {
        $nft_auction = new NftAuctions();
        $nft_auction->nft_id = $nft->id;
        $nft_auction->owner_id = $nft->user->id;
        $nft_auction->buyer_id = Auth::id();
        $nft_auction->amount = $request->input('amount');
        $nft_auction->status = 'pending';
        $nft_auction->save();
        return back();
    }
    abort(404);
}

补充说明

  • 确认路由/myaccount/makeoffer/{id}为POST请求类型,如果你没有修改Laravel默认的axios配置,框架会自动携带CSRF令牌,不需要额外处理请求头。
  • 如果你的amount字段在数据库里是整数类型(比如存分为单位),可以在赋值前做一次单位转换,比如$nft_auction->amount = (int)($request->input('amount') * 100),避免浮点数精度问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 12:36:19