Laravel+HTML+MySQL实现搜索功能时结果无法传递到视图求助
Laravel搜索功能视图无数据问题解决办法
- 首先确认视图文件
resources/views/seite/exemple.blade.php中正确输出了$b3变量
直接在视图中合适的位置添加{{ $b3 }}即可输出内容,可先在视图第一行添加{{ dd($b3) }}验证变量是否成功传递到视图:如果能打印出数据说明是原视图输出逻辑的问题,可先注释掉$b3输出相关的条件判断代码,直接输出变量测试;如果打印为空则是变量传递问题。 - 清理Laravel视图缓存
若开启了视图缓存,旧的缓存文件会导致新传递的变量无法渲染,执行以下命令清理缓存即可:php artisan view:clear - 优化控制器代码兼容空查询场景
现有代码未处理查询无结果的情况,当搜索关键词没有匹配数据时first()方法会返回null,直接取属性会报错,建议修改控制器代码如下:public function search(\Illuminate\Http\Request $request) { // 用Laravel官方推荐的方式获取请求参数,支持默认值避免报错 $sea = $request->input('name', ''); $b2 = Test::where('name', 'LIKE', '%'.$sea.'%')->first(); // 处理查询无结果的情况 $b3 = $b2 ? $b2->inhalt : '未找到匹配的内容'; return view('seite.exemple', compact('b3')); } - 额外规范优化:GET请求不需要提交CSRF令牌,你可以把表单里的
{{csrf_field()}}去掉,不影响功能。
内容的提问来源于stack exchange,提问作者carine
相关产品推荐
相关产品推荐

