如何解决将变量从一个功能传递到同一控制器中的另一个功能
我需要将功能的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]);
}
解决方法
更新第一个添加return
指令的函数,如下所示:
public function splstaff($id)
{
$staff = DB::select("SELECT staff_id FROM special_labs WHERE sno={$id}");
return $this->splstafflist($staff);
}
,
我认为您可以用不太复杂的方式编写第一行代码...
$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仅获取所需的列,然后首先从数组结果中获取值。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。