如何从关系laravel 5获得只有i列

时间:2015-12-04 11:47:06

标签: laravel eloquent

我有2个模型(事件和预算)与雄辩的laravel相关,

带预算的模型事件Realation

public function budgeting()
{
  return $this->hasMany('App\Budgeting', 'id_event', 'id');
}

我想只获得一列'总计'来自预算

这个代码控制器没有显示任何预算

public function data()
{
  $listdata = Event::orderBy('id', 'desc')->with(array('budgeting'=>function($query){
    $query->select('total','item');
    }))->get();

  return $listdata;
}

2 个答案:

答案 0 :(得分:0)

在您的事件模型中建立另一个关系以仅获取特定列

setText

答案 1 :(得分:0)

它之所以不起作用,是因为你需要选择id_event以便Eloquent建立关系。如果没有id_event,则Eloquent不知道哪个Budgeting属于哪个Event

要遵循的一般规则:每当您更改选择查询并建立关系时,您必须至少选择关系ID。

像这样更改您的查询,它应该有效。

$listdata = Event::orderBy('id', 'desc')->with(array('budgeting'=>function($query){
    $query->select(`id_event`, 'total','item');
}))->get();