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

如何获取Blade视图URL中的product id并在Laravel控制器中使用

问题原因

路由参数传递断裂、第二个表单没有正确承接第一个页面传过来的商品ID,按以下步骤修改即可:

1. 修正路由配置(web.php)

删除原有错误路由,替换为以下内容:

// 处理第一个页面的商品选择提交
Route::post('sell/{product_id}', [\App\Http\Controllers\ProductsController::class, 'sell'])->name('sell');
// 展示尺码、价格录入页,携带选中的商品ID
Route::get('sell/input/{product_id}', [\App\Http\Controllers\ProductsController::class, 'showInputForm'])->name('sell.input');
// 提交录入信息到数据库
Route::post('select/{product_id}',[\App\Http\Controllers\ProductsController::class, 'store'])->name('sell.store');

2. 补充/修改控制器逻辑(ProductsController.php)

// 处理第一个页面的商品选择请求,跳转到录入页
public function sell($product_id)
{
    return redirect()->route('sell.input', ['product_id' => $product_id]);
}

// 渲染第二个录入视图,将商品ID传递到视图层
public function showInputForm($product_id)
{
    // 此处的second.blade.php替换为你第二个视图的实际文件名
    return view('second', compact('product_id'));
}

// 最终数据存储逻辑
public function store($product_id){
    request()->validate([
        'price' => 'required|max:255',
        'size' => 'required'
    ]);

    ListedProducts::create([
        'user_id' => auth()->id(),
        'shoe_id' => $product_id,
        'size' => request('size'),
        'price' => request('price')
    ]);

    return redirect('/home');
}

3. 修正第二个视图的表单提交地址

将第二个视图的form起始标签替换为以下内容,绑定携带商品ID的提交路由:

<form action="{{ route('sell.store', ['product_id' => $product_id]) }}" method="post">

修改完成后即可正常获取shoe_id完成全量数据存储。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 05:54:03