我有 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包含来自国家/地区的以逗号分隔的ID,例如1,2,3,4 桌子。
我想使用laravel雄辩地从所有表中获取选定的列数据。
我尝试了下面的代码,该代码为逗号分隔的列提供了错误。
$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();
当列中仅包含一个国家/地区ID时,此代码将正常运行,但是当列中包含逗号分隔的值时,则会出现以下错误。
“ SQLSTATE [22P02]:无效的文本表示形式:7错误:无效的输入 整数的语法:“ 1、3、5、7”(SQL:从“国家/地区”中选择“ id”,“ name” (1,3,5,7,3)中的“国家/地区”。“ id””