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

Laravel 5:视图已返回变量无法传递至控制器问题咨询

解决Laravel 5中视图传递变量与表单提交同时获取的问题

你现在遇到的问题核心是:页面上的<h5>元素不属于表单控件,当表单提交时,浏览器不会把它的值发送给服务器,这就是为什么$request->get('index1')拿不到数据的原因。

要同时获取从视图1传递来的$date变量和视图2表单的新输入内容,你需要把$date的值放到一个表单隐藏字段里,这样它就会和其他表单数据一起提交。

具体修复步骤:

  1. 修改视图2的表单代码,添加隐藏输入字段并带上Laravel必需的CSRF令牌:
<form method="POST" action="{{route('catch')}}">
    @csrf <!-- 必须添加,否则POST请求会被Laravel的CSRF保护拦截 -->
    <!-- 把$date的值存入隐藏字段,name设为你要获取的键名index1 -->
    <input type="hidden" name="index1" value="{{ $date }}">
    <!-- 原来的显示元素可以保留,不影响页面展示 -->
    <h5 id="index1">{{ $date }}</h5>
    
    <!-- 你的其他表单输入控件,示例如下 -->
    <input type="text" name="new_content" placeholder="输入新内容">
    
    <button type="submit">提交</button>
</form>

注意:这里用{{ $date }}而非{!! $date !!}是为了自动转义HTML特殊字符,避免XSS安全风险,除非你确定$date的内容完全可信且无需转义。

  1. 修改Controller_2的store方法,现在就能正常获取到目标值了:
public function store(Request $request) {
    // 获取从视图1传递来的变量值
    $fromView1Data = $request->input('index1');
    // 获取视图2的新输入内容
    $newUserInput = $request->input('new_content');
    
    // 这里可以根据需求做逻辑处理,比如返回数据或存入数据库
    return response()->json([
        'view1_data' => $fromView1Data,
        'new_input' => $newUserInput
    ]);
}

这样提交表单后,服务器就能同时拿到从视图1传递过来的数据和视图2的新输入内容了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:35:58