Laravel Relation 'со значениями GROUP_CONCAT - PullRequest
0 голосов
/ 10 сентября 2018

У меня есть таблица расписания с несколькими датами, у меня есть эта связь

$report = CaregiverSchedule::select(
        DB::raw('GROUP_CONCAT(id) as ids'),
        DB::raw('GROUP_CONCAT(client_id) as client_ids'),
        DB::raw('GROUP_CONCAT(caregiver_id) as caregiver_id'),
        'agency_id', 
        'valid_from', 
        'valid_to',
        DB::raw('COUNT(DATE(valid_from)) AS conflict_count'),
        DB::raw("IF(COUNT(DATE(valid_from)) > 1, TRUE, FALSE) as conflicts"),
        DB::raw('GROUP_CONCAT(valid_from) as dates')
    )->groupBy(DB::raw('DATE(valid_from)'))
    ->having('conflicts',true)
    ->where('client_id',4);

записей, которые он возвращает:

[
    {
        "ids": "26,4",
        "client_ids": "4,4",
        "caregiver_id": "12,3",
        "agency_id": 2,
        "valid_from": "2018-07-10 09:00:00",
        "valid_to": "2018-07-10 17:00:00",
        "conflict_count": 2,
        "conflicts": 1,
        "dates": "2018-07-10 09:00:00,2018-07-10 09:00:00"
    },
    {
        "ids": "5,27",
        "client_ids": "4,4",
        "caregiver_id": "3,12",
        "agency_id": 2,
        "valid_from": "2018-07-11 09:00:00",
        "valid_to": "2018-07-11 17:00:00",
        "conflict_count": 2,
        "conflicts": 1,
        "dates": "2018-07-11 09:00:00,2018-07-11 09:00:00"
    }
]

обратите внимание на caregiver_id, например, 12,3, есть ли вероятность, что caregiver_id может возвратить пользовательские объекты с отношением hasMany в eloquent Laravel?

например:

{
    "ids": "40,18",
    "client_ids": "4,4",
    "caregiver_id": "12,3",
    "caregivers":[
        {
            id: 12,
            name: "john"
        },
        {
            id: 3,
            name: "doe"
        }
    ]
    "agency_id": 2,
    "valid_from": "2018-07-24 09:00:00",
    "valid_to": "2018-07-24 17:00:00",
    "conflict_count": 2,
    "conflicts": 1,
    "dates": "2018-07-24 09:00:00,2018-07-24 09:00:00"
}
...