나는 2 개의 콜렉션을 가지고 있는데, 하나의 변수로 병합하고 싶다. (물론, 하나의 콜럼으로 주문하기 - created_at
). 어떻게해야합니까?두 개의 숭배 컬렉션을 병합하고 정렬 하시겠습니까?
답글 : :
ID | ticket_id | username | message | created_at
1 | 1 | somebody | asdfghj | 2014-04-12 12:12:12
2 | 1 | somebody | qwertyi | 2014-04-14 12:11:10
로그 :
ID | ticket_id | username | action | created_at
1 | 1 | somebody | close | 2014-04-13 12:12:14
2 | 1 | somebody | open | 2014-04-14 14:15:10
그리고 나는 이런 식으로 뭔가를 원하는
$replies = Ticket::with('replies', 'replies.user')->find($id);
$logs = DB::table('logs_ticket')
->join('users', 'users.id', '=', 'mod_id')
->where('ticket_id', '=', $id)
->select('users.username', 'logs_ticket.created_at', 'action')
->get();
내 출력 예를 찾습니다
내 컨트롤러
는 것을 보인다 :ticket_id | table | username | message | created_at
1 |replies| somebody | asdfghj | 2014-04-12 12:12:12
1 | logs | somebody | close | 2014-04-13 12:12:14
1 | logs | somebody | open | 2014-04-14 11:15:10
1 |replies| somebody | qwertyi | 2014-04-14 12:11:10
편집 : 당신은 정확하게 당신이 쉽게 원하는 것을 얻을 수하지 않을거야
<?php
class Ticket extends Eloquent {
protected $table = 'tickets';
public function replies() {
return $this->hasMany('TicketReply')->orderBy('ticketreplies.created_at', 'desc');
}
public function user()
{
return $this->belongsTo('User');
}
}
?>
DB :: table은 stdObjects 배열을 반환하므로 결과가 일치하지 않거나 Eloquent Collection/Model로 변환해야합니다.더 나은 방법으로 답을 얻으려면 릴레이션을 사용하여 모델을 붙여 넣으십시오. –
@deczo 티켓 모델을 추가했습니다. – Siper
로그는 어떻게됩니까? –