首页 > 解决方案 > 将数组传递到 Laravel 中的单列

问题描述

我正在尝试将一些值传递到 laravel 数据库表中的单个列中。

值是这样的 20,45,67,89

但我希望他们像这样进入列

===USER_ID====
20
45
67
89

我已经尝试如下,但没有工作..有什么建议吗?

foreach ($request->val2 as $value){

    $str_explode = explode(",",$value);

    DB::table('retirement')->insertGetId([
        'user_id' => $str_explode,
        'amount'  => $request->val1,
        'week' => $request->week

    ]);
}

标签: laravellaravel-5

解决方案


我不确定我是否清楚地理解了您的问题,我假设您想将数组插入列:

  • 您是否尝试将列设置为迁移到 Json?
  • 您是否将模型中的 $casts 设置为 json 或数组?
protected $casts = [ 'user_id' => 'array' ];

然后当你这样做时,你可以在该列中添加一个数组,如

Posts::create(['user_id'=>[1,2,3,4]]);

通常 user_id 字段设置为unsignedBigInt(),该类型只接受整数,您必须先检查迁移列类型。


推荐阅读