2016-04-21 23 views
0

有沒有一種方法可以構建一個查詢,該查詢不僅返回模型/表上的現有實體,還會根據函數/查詢創建新的變量。全部在一個查詢中完成。Eloquent中的匿名類型替代

所以像這樣的僞代碼。

Job::whereDate('created_at', '>=', $pdate) 
    ->with('address') 
    ->with('Employees'->count() as newprop); 

基本上,我想要得到這份工作,地址,還對集合中返回的對象,將舉行爲每個作業員工數創建一個新的屬性。 這樣做的最好方法是什麼?也許我應該在Job模型上創建一個新的函數/屬性,返回Employees count?這是否意味着應用程序會進行更多的數據庫查詢,或者只要使用雄辯來獲取任何Job對象,這些屬性是否會被填充?

回答

1

如果你想將它添加到所有工作模型實例:

public function getNewpropAttribute($value) { 
    return count($employees); 
} 

這樣,你可以調用Job::find($id)->newprop;,它會執行該功能。它在這裏描述https://laravel.com/docs/master/eloquent-mutators#accessors-and-mutators

+0

如果我顯式調用getNewpropAttribute訪問器Job :: find($ id) - > new prop;如果我只是獲得一系列工作並用json將它們拍到前端,那又如何?如,我怎樣才能創建一個employee_count屬性,並在每個作業對象上設置正確的計數。 – LaserBeak