Laravel красноречивый ownsto с несколькими идентификаторами в столбце в виде запятой - PullRequest
0 голосов
/ 13 ноября 2018

У меня есть 4 таблицы

media, media_type, media_mapping и страна.

country with field id, name, created_at, updated_at.

media_type with field id, name, created_at, updated_at.

media table with field id, name, media_type_id, description, created_at, updated_at.

media_mapping with field id, media_id,country_id, hastags, created_at, updated_at.

Где в таблице media_mapping

country_id содержит идентификаторы, разделенные запятыми, например, 1,2,3,4, из таблицы стран.

Я хочу получить данные о выбранных столбцах из всей этой таблицы, используя laravel eloquent.

Я попробовал приведенный ниже код, в котором он выдает ошибку для столбца, разделенного запятыми.

$mediaQuery = new Media();
$mediaQuery = $mediaQuery->newQuery();
$mediaQuery->orderBy('created_at', 'desc')
->with(array('MediaMapping'=>function($query){
    $query->select('media_id', 'country_id', 'hashtags')->with(array('Country'=>function($query){
        $query->select('id','name');
    }
));
},
'MediaType'=>function($query){
    $query->select('id','name');
})
);
$allDataList = $mediaQuery->get();

Если столбец содержит только один идентификатор страны, тогда этот код выполняется правильно, но если в столбце есть значения, разделенные запятыми, он будетвыдает ошибку ниже.

"SQLSTATE [22P02]: недопустимое текстовое представление: 7 ОШИБКА: неверный синтаксис ввода для целого числа:" 1,3,5,7 "(SQL: выберите" id ","имя "из" страны ", где" страна "." id "в (1,3,5,7, 3))"

...