首页 > 解决方案 > 无法在 Laravel 中检索多个 mysql 查询值

问题描述

我的Controller函数中有 3 个这样的查询:

function getDataDetail(Request $request) 
{
    $id = $request->get('id');

    $taskData['taskData'] = DB::select("SELECT NAME_, PRIORITY_, ASSIGNEE_, DUE_DATE_, START_TIME_, END_TIME_, PROC_DEF_ID_ FROM act_hi_taskinst WHERE PROC_INST_ID_ LIKE '%$id%'");

    $varData['varData'] = DB::select("SELECT NAME_, TEXT_ FROM act_hi_varinst WHERE PROC_INST_ID_ LIKE '%$id%'");

    $imagepath['imagepathData'] = DB::connection('mysql_2')->select("SELECT imagePath FROM images WHERE processInstanceId = $id");

    if(count($taskData) > 0 && count($varData) > 0 && count($imagepath) > 0) {
        return view('datatrackingdetail', $taskData, $varData, $imagepath);
    } else {
        return view('datatrackingdetail');
    }
}

我通过 foreach 循环在我的视图中检索查询值。问题是我的代码在 if 函数中只有 2 个查询变量可以正常工作,如果我的代码中有 3 个查询变量并且它不起作用,错误说:

在我看来,“未定义的变量 imagepathData”。

我应该如何解决它?非常感谢!

标签: phpmysqllaravel

解决方案


尝试

DB::connection('mysql_2')->table('images')->select("imagePath")->where(['processInstanceId' => $id]);

或者您应该在查询中使用原始选择


推荐阅读