文档中没有提到的标准过程,该过程如何使用雄辩语法在laravel中的mySQL中调用存储过程。
我的意思是有什么方法可以在MySQL中拨打存储过程,例如
$result = StoredProcedures::my_custom_procedure(param1, param2);
return view('welcome')->with('result',$result);
有任何方法可以通过纯粹的句子语法(纯粹雄辩的方式(来调用和获取结果。
谢谢。强烈鼓励了小例子。
正如每个人都提到的,您无法使用雄辩的语法在Laravel中调用一个存储过程。您可以将查询结果转移到一个收集的收集功能。
$queryResult = DB::select('call my_custom_procedure(?, ?)', [1,2]);
$result = collect($queryResult);
return view('welcome')->with('result',$result);
您无法用雄辩调用存储过程。但是,您可以使用以下样式使用查询构建器方法。
首先在控制器文件的顶部或要调用存储过程的文件中导入以下名称空间。
use IlluminateSupportFacadesDB;
use DoctrineDBALDriverPDOConnection;
然后,您可以按照下面的方式调用存储过程,
$queryResult = $db->prepare('call searchAttendance(?,?,?,?,?)');
$queryResult->bindParam(1, $start_date);
$queryResult->bindParam(2, $end_date);
$queryResult->bindParam(3, $nurseRoles,PDOConnection::PARAM_STR);
$queryResult->bindParam(4, $leaveTypesDayOffIds,PDOConnection::PARAM_STR);
$queryResult->bindParam(5, $leaveTypesVactionIds,PDOConnection::PARAM_STR);
$queryResult->execute();
$results = $queryResult->fetchAll(PDOConnection::FETCH_ASSOC);
$queryResult->closeCursor();
return $results;
参考:单击此处
否没有Facade
,因为一个简单的解决方案是使用RAW SQL
查询
$result = DB::select('my_custom_procedure(?, ?)', [1,2]);