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

实现搜索地图功能报Undefined variable: req错误,代码如何修改?

问题解决方法

错误原因

这个Undefined variable: req报错是因为你在Blade模板中直接调用了$req变量,但渲染该模板的控制器没有将Request实例$req传递到视图层。

调整方案

方案1:使用Laravel全局request()助手(推荐,无需修改控制器)

直接将onRegionClick回调中生成路由的代码替换为以下内容,不需要额外传参就能获取请求参数:

var url = '{{ route("search", ["q" => request()->input("q", ""), "province" => ":id"]) }}';

这里加了第二个参数""作为兜底,避免请求中没有q参数时出现报错。

方案2:控制器传递$req变量到视图

如果你坚持要使用$req变量,需要在渲染该模板的控制器方法中补充传参:

use Illuminate\Http\Request;

public function 你的方法名(Request $req)
{
    // 你的原有业务逻辑
    return view('你的视图名称', [
        // 你原有传递的参数,比如 $total_search_query
        'total_search_query' => $total_search_query,
        'req' => $req // 新增这行把Request实例传到视图
    ]);
}

额外优化建议

你现有代码的onRegionTipShow回调中,如果array.find没有匹配到对应地区的数据,会返回undefined,直接取count属性会触发JS报错,建议修改为兜底写法:

var a = array.find(a => a.name === myTrim(regionName))?.count || 0;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 10:24:00