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

如何在Blade模板中通过a标签将多个变量传递到Controller控制器

场景1:仅传递页面初始加载的默认日期值

如果你不需要处理用户修改日期输入框的场景,只需要传递页面渲染时预设的当前日期,直接在Blade中拼接查询参数即可:

<a href="{{ url('/totalsales?from='.date('Y-m-d').'&to='.date('Y-m-d')) }}">查询销售汇总</a>

后端可以直接通过Request实例获取参数:

// Controller 代码
public function getTotalSales(Request $request)
{
    $from = $request->input('from');
    $to = $request->input('to');
    // 后续业务逻辑处理
}

场景2:支持用户修改日期后动态传递最新值

Blade是服务端渲染模板,页面渲染完成后无法直接获取用户在前端修改的输入框值,需要配合JavaScript动态更新a标签的href属性:

  1. 先给输入框和a标签增加ID标识,方便DOM选择:
<input type="date" class="form-control" id="date_from" name="from" value="{{ date('Y-m-d') }}">&nbsp;
<input type="date" class="form-control" id="date_to" name="to" value="{{ date('Y-m-d') }}"> 
<a href="javascript:void(0)" id="sales_query_link">查询销售汇总</a>
  1. 增加JavaScript代码监听日期变化,动态更新跳转链接:
document.addEventListener('DOMContentLoaded', () => {
    const fromEl = document.getElementById('date_from');
    const toEl = document.getElementById('date_to');
    const linkEl = document.getElementById('sales_query_link');

    const updateLink = () => {
        const fromVal = fromEl.value;
        const toVal = toEl.value;
        // 可选:增加日期间隔合法性校验
        if (fromVal && toVal && new Date(toVal) >= new Date(fromVal)) {
            linkEl.href = `/totalsales?from=${fromVal}&to=${toVal}`;
        } else {
            linkEl.removeAttribute('href');
            alert('请选择合法的日期间隔,结束日期不能早于开始日期');
        }
    }

    // 页面初始化时先赋值一次默认链接
    updateLink();
    // 监听日期输入变化
    fromEl.addEventListener('change', updateLink);
    toEl.addEventListener('change', updateLink);
})
  1. 后端接收逻辑和场景1一致,建议增加参数校验:
public function getTotalSales(Request $request)
{
    $validated = $request->validate([
        'from' => 'required|date',
        'to' => 'required|date|after_or_equal:from',
    ]);
    // 使用$validated['from']和$validated['to']处理业务逻辑
}

如果你希望用路由参数而非Query String传递参数,只需要将路由定义为Route::get('/totalsales/{from}/{to}', [SalesController::class, 'getTotalSales']),对应拼接href时格式改为/totalsales/${fromVal}/${toVal}即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 23:06:03