У меня есть 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))"