【问题标题】:Passing variable from one function to another function in same controller将变量从一个函数传递到同一控制器中的另一个函数
【发布时间】:2020-09-19 08:55:36
【问题描述】:

我需要将一个函数的 id 传递给其他函数,我尝试过这种方式,但我无法得到结果。任何人都可以发现错误并给我一个解决方案。这是我正在使用的确切代码

public function splstaff($id)
{
    $staff = DB::select("SELECT staff_id FROM special_labs WHERE sno={$id}");
    $this->splstafflist($staff);
}

public function splstafflist($staff)
{
    $data=DB::connection('mysql3')->select("SELECT MD5(CONCAT(a.staff_id,a.dob,a.cat_id))  staffid,a.staff_id,a.dep_id,
     LOWER(CONCAT(a.legend,' ',a.staff_name))staff_name,a.photo,b.desi_name,IFNULL(c.degree,'')degree,b.desi_orderno,
     IFNULL(MIN(sp.date_promotion),a.doj) doj FROM staff_personal_copy a LEFT JOIN staff_designationmaster b ON a.desi_id=b.desi_id
     LEFT JOIN staff_qualification_view c ON c.staff_id=a.staff_id LEFT JOIN (camps.staff_promotion sp INNER JOIN staff_designationmaster sd
     ON sp.to_designation=sd.desi_id AND sp.status>0 INNER JOIN staff_desigmaster sd1 ON sp.from_design=sd1.desi_id AND
     sd1.desi_orderno!=sd.desi_orderno ) ON sp.staff_id=a.staff_id AND b.desi_orderno=sd.desi_orderno WHERE a.staff_id IN ('{$staff}')
     AND a.status=1 AND a.cat_id=1 GROUP BY a.staff_id,sd.desi_orderno ORDER BY b.desi_orderno,doj,a.staff_id");
    return view('research.labs.staff',['splfac'=>$data]);
}

【问题讨论】:

    标签: php mysql laravel controller


    【解决方案1】:

    更新第一个添加return指令的函数,如下所示:

    public function splstaff($id)
    {
        $staff = DB::select("SELECT staff_id FROM special_labs WHERE sno={$id}");
        return $this->splstafflist($staff);
    }
    

    【讨论】:

      【解决方案2】:

      我认为你可以用不太复杂的方式编写你的第一行代码......

      $value = DB::table('special_labs')->where('sno',$id)->pluck('staff_id')->first();
       return   $this->splstafflist($value);
      

      问题出在这一行:

       $staff = DB::select("SELECT staff_id FROM special_labs WHERE sno={$id}");
      

      您没有使用 get() 方法,因此结果将是一个查询构建器,当您获得结果时,即使它只有一个结果,它也会是一个数组...... 所以我建议使用 pluck 只取你想要的列,然后首先从数组结果中获取值..

      【讨论】:

      • 这将返回从 url 传递的 ID 的值
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-16
      • 1970-01-01
      相关资源
      最近更新 更多