2016-03-10 55 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