将集合保存到数据库

威尔·丹尼尔斯

我有一个名为UserCommission的数据库表,下面为我做了一个雄辩的模型:

namespace App;

use Illuminate\Database\Eloquent\Model;

class UserCommission extends Model
{
    protected $connection = 'sqlsrv';
    protected $table = 'UserCommission';
}

现在,在我的控制器中,我有很多要添加到该表中的信息。我首先将其放入如下所示的集合中:

        $returnData = new Collection();

        foreach ($datePeriod as $key => $date)
        {
            foreach ($consultants as $consultant)
            {
                $year  = (int) $date->format('Y');
                $month = (int) $date->format('n');

                $commission = new UserCommission();

                $commission->userId = $consultant['UserId'];
                $commission->year   = $year;
                $commission->month  = $month;
                $commission->commissionPercentage = Self::getCommissionPercentage($consultant['UserId'], $consultant['CreatedOn'], $consultant['RoleId'], $date);

                $returnData->push($commission);
            }
        } 

因此,当我打印出返回数据时,它会打印出一个集合,该集合中填充了正确的项,其属性与表字段匹配。我找不到如何将其保存到表中。

我试过了

$returnData->save();

但这不是收集功能。

莫扎米尔

如果要一次全部插入它们,则可以绕过Collection而是执行以下操作:

$commissions = []; 

foreach ($datePeriod as $key => $date)
{
    foreach ($consultants as $consultant)
    {
        $year  = (int) $date->format('Y');
        $month = (int) $date->format('n');

        $commissions[] = [
            'userId' => $consultant['UserId'];
            'year' => $year, 
            'month' => $month
            'commissionPercentage' => Self::getCommissionPercentage($consultant['UserId'], $consultant['CreatedOn'], $consultant['RoleId'], $date);
        ]; 
    }
} 

由于insert()可以接受要插入的数据数组,因此现在可以进行以下操作:

UserCommission::insert($commissions);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章