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

Laravel Blade用户搜索栏无结果问题排查

问题排查与解决方法

核心问题是请求参数名不匹配:
你的Blade表单里搜索输入框的name属性是username,但控制器里判断的是$request->search,两者对不上,所以每次都会走到else分支返回"no_results"。

修复方案(二选一即可)

方案1:修改Blade表单的输入框名称

把input的name改成search,和控制器里的参数名对应:

<form action="{{route('search')}}" method="get">
    <input type="search" name="search" id="" placeholder="Cerca" class="searchbar">
    <button type="submit">Search</button>
</form>

方案2:修改控制器的参数判断逻辑

把控制器里的$request->search改成$request->username,匹配表单的参数名:

function search_users(Request $request) {
    if ($request->username) {
        $searchUsers = User::where('username', 'LIKE', '%'. $request->username. '%')->get();
        $data = [
            "users" => $searchUsers
        ];
        return view('dashboard.home', $data);
    } else {
        return response()->json("no_results");
    }
}

额外提示

  • 可以用$request->filled('参数名')替代直接判断变量,比如方案1里用$request->filled('search'),这样能更严谨地过滤空字符串的情况。
  • 如果是AJAX请求,要确保前端发送的参数名和后端修改后的一致;如果是页面跳转,修改后就能正常返回带搜索结果的视图了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 15:43:26