【问题标题】:Laravel excel, iterate item to insert dataLaravel excel,迭代项目以插入数据
【发布时间】:2020-04-05 17:53:28
【问题描述】:

我的 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?
            ]);
        }
    }

【问题讨论】:

    标签: excel laravel laravel-excel


    【解决方案1】:

    这可以帮助您确定性别:

    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
            ]);
        }
    }
    

    【讨论】:

    • 返回值还是空的。使用男性和女性条件只会返回false,因为$row[0] is equal to 1 and 2 and 3。等等,当我导入数据时,它会按 ROW 读取它,这就是为什么即使您删除male and female 的条件,返回值也将是row0 中的数字。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-23
    • 1970-01-01
    • 2018-11-12
    • 2018-11-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多