Php 在数据库中保存逗号分隔的值,但抛出不匹配的参数

Php 在数据库中保存逗号分隔的值,但抛出不匹配的参数,php,laravel,Php,Laravel,我有这个隐藏的领域在我的形式 {{ Form::hidden('doc', $ansres) }} 当我dd($ansres)我收到以下信息 string(3) "2,3" 当我试图将其保存到数据库中时,我收到了错误消息 ErrorException:explode()要求参数2为字符串,数组给定 在保存之前,我在控制器中尝试的是像这样分解Input::get('doc') $product = new Product(); $files = explode(",",Input::get(

我有这个隐藏的领域在我的形式

{{ Form::hidden('doc', $ansres)  }}
当我
dd($ansres)
我收到以下信息

string(3) "2,3"
当我试图将其保存到数据库中时,我收到了错误消息

ErrorException:explode()要求参数2为字符串,数组给定

在保存之前,我在控制器中尝试的是像这样分解
Input::get('doc')

$product = new Product();
$files = explode(",",Input::get('doc'));
$product->documents = $files;
$product->save();
既然
dd()
显示它是字符串,为什么我仍然会出现此错误

更新:$ansres

foreach($cart as $doc)
{
    $documents[] = $doc['doc'];
}
$ansres = implode(",",$documents);

因为您已经获得了字符串值,所以在
数组中使用
分解
再次转换它是没有意义的。因此,请尝试按原样保存逗号分隔的值:

$product = new Product();
// $files = explode(",",Input::get('doc')); removing explode function
$product->documents = Input::get('doc'); 
$product->save();

编辑:我假设
文档
列是数据库中的
varchar
数据类型。

因为您已经获得了字符串值,所以没有必要使用
分解在
数组
中再次转换它。因此,请尝试按原样保存逗号分隔的值:

$product = new Product();
// $files = explode(",",Input::get('doc')); removing explode function
$product->documents = Input::get('doc'); 
$product->save();

编辑:我假设,
文档
列是数据库中的
varchar
数据类型。

$files
之前尝试
dd(Input::get('doc'))
首先再次尝试这个
字符串(3)“2,3”
,在页面的查看源代码时我看到了这个
dd($files)
返回这个
数组(2){[0]=>string(1)“2”[1]=>string(1)“3”}
从哪里来
$ansres
的值?在
$files
之前,尝试
dd(Input::get('doc'))
首先再次返回这个
字符串(3)“2,3”
,在页面的查看源代码时,我看到了这个
dd($files)
返回这个
数组(2){[0]=>string(1)“2”[1]=>string(1)“3”}
从哪里来
$ansres
的值?哦,天哪。我在这上面花了太多时间,以至于我完全忘记了数据库列。很高兴,它对您有用。如果答案对你有帮助,请接受:)哦,上帝。我在这上面花了太多时间,以至于我完全忘记了数据库列。很高兴,它对您有用。如果答案对您有帮助,请接受:)