я имею 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», «name» из «country», где «country». «id» в (1,3,5,7, 3)) »
Задача ещё не решена.
Других решений пока нет …