2017-06-04 153 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;