2017-06-04 28 views
2

ドキュメントでは、laravelでMYSQLのストアドプロシージャをEloquent構文で呼び出す方法については記載されていません。Eloquent(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

ありません簡単な解決策は、誰もが言及したように、あなたが雄弁構文でLaravelでストアドプロシージャを呼び出すことはできません生SQLクエリ

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

を使用することであることにはFacadeはありません。 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

::水和物を使ってデータセットから雄弁なモデルを作成することもできます。 – 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;