2017-06-04 29 views
2

文档中没有提到如何使用Eloquent语法在laravel中调用MYSQL中的存储过程的标准过程。如何通过雄辩(Laravel)调用存储过程?

我的意思是有没有办法跟雄辩语法的帮助来调用存储过程在MySQL一样

$result = StoredProcedures::my_custom_procedure(param1, param2); 
return view('welcome')->with('result',$result); 

有什么方法调用,并从纯雄辩语法(纯雄辩的语言)存储过程获取的结果。

谢谢。小例子受到高度鼓励。

+1

的可能的复制[如何执行从Laravel存储过程(https://stackoverflow.com/questions/34497063/how-to-execute-stored-procedure-from-laravel) – Sandeesh

+0

雄辩不提供任何功能来调用存储过程。您需要使用原始查询来实现此目的。上述问题的答案就是如何去做。 – Sandeesh

回答

0

没有没有Facade应该是一个简单的解决方案是使用原始SQL查询

$result = DB::select('my_custom_procedure(?, ?)', [1,2]); 
0

因为每个人都有提到,你不能调用Laravel存储过程与雄辩的语法。 You can transfer the result of your query to a collection这将给你所有的收集功能。

$queryResult = DB::select('call my_custom_procedure(?, ?)', [1,2]); 

$result = collect($queryResult); 

return view('welcome')->with('result',$result); 
+0

您还可以使用:: hydrate从数据集创建雄辩的模型,非常整洁! – Mazzy

1

你不能用存储过程调用存储过程。但是,您可以按照以下样式使用查询生成器方法。

$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;