首页 > 解决方案 > Laravel excel,迭代项目以插入数据

问题描述

我的 excel 文件由 student id, name, and course我保存在数据库中的文件组成。数据按性别分开,其中row[0]. 我在这里想要实现的是如何迭代我的数据并在我的数据库中插入性别。?

样本sample.xlsx

在此处输入图像描述

//StudentController
Excel::import(new StudentsImport, request()->file('import'));
//ImportSheet
public function model(array $row)
    {
        //empty rows
        if (!isset($row[1]) || $row[0] == '#') {
            return null;
        }

        if (isset($row[1])) {
            return new Student([
                'id_number' => $row[1],
                'name' => $row[2],
                'course' => $row[3],
                'gender' => 'male || female', //<--- HOW CAN I INSERT GENDER HERE BASE ON THE JPEG ABOVE?
            ]);
        }
    }

标签: excellaravellaravel-excel

解决方案


以下是可以帮助您确定性别的方法:

public function model(array $row)
{        
    //empty rows
    if (!isset($row[1]) || $row[0] == '#') {
        return null;
    }

    //get the gender
    $gender = ''; // default is empty, you can also assign some default value 
    if (isset($row[0]) && (strtolower($row[0]) == 'male' || strtolower($row[0]) == 'female')) {
        $gender = $row[0];
    }


    if (isset($row[1])) {
        return new Student([
            'id_number' => $row[1],
            'name' => $row[2],
            'course' => $row[3],
            'gender' => $gender
        ]);
    }
}

推荐阅读