2016-03-10 81 views
1

我試圖讓雄辯的收集與下一行:添加列雄辯

Document::with('more_information')->anyScope()->get() 

我越來越與20「」的集合,但是我想補充一個又一個格式化日期以便輕鬆地與其他組件進行交互,而不是格式化每個組件中的日期。

要添加此專欄中,我可以重寫21個名,寫更多的線路來獲取我的調用集合......但是,這並不好看...

是否有簡單地添加我的第21列而不重寫其他20的方法?

我看了一些關於addSelect,但在我的代碼,它忽略了我的20分列

+0

這是21列從數據庫中獲取另一列的只是不同的表現? – Bogdan

+0

@Bodgan是的,它是 – WindSaber

回答

1

終於得到了它,它的工作原理做了下:

Document::with('more_information')->anyScope()->get('*',<aditional columns>) 

更新: 尋找另一個更合適的方式來完成我的任務,我發現訪問者和模型屬性$追加

使用下一個腳本我可以使用自定義列檢索我的集合。需要提到的是,如果不使用$ append,訪問器運行良好,但不會在數組中返回。它不推薦使用了很多次$追加,因爲它影響以負面方式表現

class Trabajador extends Model { 

protected $appends = ["fullName"]; 

public function getFullNameAttribute() { 
    return $this->attributes['nombre'] . $this->attributes['apellidos']; 
} 

}

+0

這個帖子標記爲已回答 – cresjie

+0

這很好用,如果你可以在PHP中做你的計算。但是,我需要在數據庫上運行的SQL查詢中運行計算。具體而言,我需要在我的Postres數據庫中運行'json_agg()'計算,這在PHP中複製並不容易。如何做到這一點的任何想法都會受到歡迎。 – cartbeforehorse