, поэтому у меня есть отношения между тремя моделями: пользователи, билеты и назначения.Билет может иметь много пользователей, хотя и назначает, поэтому я могу получить все билеты, которые были назначены текущему пользователю.
AssignsTable
id|ticket_id |user_id |created_at
1 |30 |1 |2018-10-12 10:17:42
2 |30 |2 |2018-10-12 11:17:51
3 |31 |1 |2018-10-12 11:18:00
4 |32 |3 |2018-10-12 12:18:00
5 |33 |1 |2018-10-12 12:30:00
Запрос
$tickets = Ticket::with('AssignedUsers')
->WhereHas('AssignedUsers', function($q) {
$q->where('assigns.user_id', '=', '1')
->latest('assigns.created_at')
->groupBy('assigns.ticket_id')
->orderBy('assigns.id');
})
->get();
Результаты
id |ticket_id |user_id |created_at
1 |30 |1 |2018-10-12 10:17:42
3 |31 |1 |2018-10-12 11:18:00
5 |33 |1 |2018-10-12 12:30:00
Ожидаемые результаты
id|ticket_id |user_id |created_at
3 |31 |1 |2018-10-12 11:18:00
5 |33 |1 |2018-10-12 12:30:00
Как вы можете видеть вышеЯ хочу скрыть билет от пользователя 1 в случае, если он был назначен другому.
Ticket Modal
class Ticket extends Model
{
public function AssignedUsers()
{
return $this->belongsToMany(User::class, 'assigns','ticket_id','user_id')
->withTimestamps();
}
}