2015-12-04 3 views
0

У меня есть 2 модели (Event & Бюджетирование) в связи с красноречивым Laravel,Как получить только я столбец из соотношения Laravel 5

Модель событий 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; 
} 
+0

is 'Event :: orderBy ('id', 'desc') -> with ('бюджетирование') -> get()' возвращает любые данные бюджетирования? – Moppo

+0

да это возврат всех данных от Бюджетирования Модель –

ответ

0

Причина, почему это не работает, потому что вы должны также выбрать id_event для того, чтобы Eloquent строить отношения. Без id_event, Eloquent не знает, кому принадлежит BudgetingEvent.

Общее правило: Если вы изменяете запрос выбора и вы строите отношения, вы должны выбрать идентификаторы отношений как минимум.

Измените свой запрос таким образом, и он должен работать.

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

да, это работает –

0

Марка другое отношение в вас модели событий, чтобы получить только определенный столбец

public function totalBudgeting() 
{ 
    return $this->hasMany('App\Budgeting', 'id_event', 'id')->select(['total','item']); 
} 
Смежные вопросы