2014-12-04 98 views
0

如何在laravel中獲得SQL Server函數的結果?使用Laravel選擇SQL Server函數

嘗試這樣:

\DB::connection('database')->select(\DB::raw("SELECT dbo.function(1, 1, 'O', GETDATE(), 5)")); 

但越來越無法訪問空屬性。

我想我可以得到這個工作,如果我指定一個任意表並選擇第一條記錄。 有沒有更好的方法來做到這一點?似乎不必要的複雜。

\DB::connection('database')->table('table') 
          ->select(\DB::raw("dbo.function(1, 1, 'O', GETDATE(), 5) as nextDocId")) 
          ->first(); 

你可能想知道:爲什麼不直接用PHP編寫這個功能,這個問題的答案是因爲我連接到其中,他們已經編寫存儲過程和函數的專有軟件的後臺數據庫以處理我正在尋找的相同功能。我想堅持他們的一致性。

回答

0

好吧,在你的第一個答案中,你並沒有告訴laravel你想要哪張桌子,以及你在找什麼結果。

使用查詢生成器時,您需要使用其中一種方法(first(),get()等)才能訪問數據。

如果你設置你的數據庫配置文件(app/config/database.php),那麼你將不需要使用connection()方法。

你試過使用雄辯嗎?這使事情變得更容易!

+0

感謝您的迴應! 真的不需要一張表 - 它是無關的,因爲它是一個數據庫級的標量函數。 我實際上有兩個數據庫連接,這不是我的主要連接,因此需要連接調用。 我不完全確定我將如何使用這種情況的雄辯。 沒有真正的模型可供考慮。 – nicthu 2014-12-05 20:23:57