2016-02-15 16 views
1

似乎每個人都在問如何將Query \ Builder轉換爲Eloquent \ Builder。我需要相反的 - 我有一個模型與一些範圍定義,我創建一個查詢。它返回的結果是我的模型的一個實例。我希望它是一個普通的對象。將Eloquent Builder轉換爲查詢生成器

獲取模型和轉換爲stdClass對我來說似乎不正確。

這可能嗎?

回答

1

是的。您可以使用Eloquent查詢構建器構建查詢,但您可以使用基本查詢構建器實際執行查詢,該構建器將返回stdClass對象。

下面是一個例子。顯然你可以把所有這些東西連成一條線,但我把它分成多行來解釋發生了什麼。假設你有一個active()範圍您User型號:

// start an eloquent query but don't execute it yet 
$query = User::active(); 

// add any other conditions... 

// get the base builder for the eloquent builder 
$baseQuery = $query->getQuery(); 

// will return a standard array of stdClass objects 
$users = $baseQuery->get(); 

又如只返回一個對象:

// will return a stdClass object 
$user = User::active()->getQuery()->first(); 

要知道,雖然,你失去口才查詢功能,如人際關係和急切的加載。

例如:

$user = User::with('posts')->active()->getQuery()->get(); 

這將運行的職位爲用戶查詢和職位將連接到stdClass的對象返回。

+0

太簡單了。謝謝! – Okneloper

相關問題