2016-09-23 121 views
-1

我是Laravel的新手,并遇到ManyToMany关系问题。Laravel商店方法ManyToMany错误

我有两个表: 成员 基

成员可以属于多个组,一组可以有很多成员。

我已经在模型和数据透视表中创建了关系。

当我创建成员时,我有组的复选框。

在我的店里方法我这样做:

.... 
$member->save(); 

if(isset($request->groups)) { 
$groups = implode(',', $request->groups); 
$member->groups()->sync([$groups]); 
} 

DD($组)给出: “2,7”

我得到的错误: QueryException在Connection.php 761:SQLSTATE [01000]:警告:1265的数据在第1行截断为列 'GROUP_ID'(SQL:插入group_membergroup_idmember_id)值(2,7,5))

这是哪里5来自和为什么我得到这个错误?

谢谢

回答

1

此错误是因为您输入的数据类型。

使用

implode() 

你把所述阵列成一个字符串而同步()方法想要的阵列作为输入。让我们试试吧:

$member->save(); 

if(isset($request->groups)) { 
    $member->groups()->sync($request->groups); 
} 
+0

OMG,当然!!!我在过去的几个星期里学习了laravel,我的脑袋里充满了信息.....谢谢:) –