Laravel雄辩的所属在列中有多个ID,以逗号分隔

时间:2018-11-13 09:33:34

标签: php laravel-5 eloquent has-many belongs-to

我有 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””

0 个答案:

没有答案