Laravel在使用faker时出现“未定义偏移量:4”异常,如何删除偏移量?

问题描述 投票:0回答:2
    public function run(){
    $types = ['Travelling','Camping','Restaurants','Food'];

    for ($i = 0; $i < 50; $i++){

        $faker = Factory::create();
        $internet = new Internet($faker);
        $date = new DateTime($faker);
        $lorem = new Lorem($faker);

        $id = $internet->numberBetween($min = 2000,$max = 2000000);
        $price = $internet->randomFloat($nbMaxDecimals = 2, $min = 0, $max = 100);
        $expiration = $date->dateTimeBetween($startDate = 'now', $endDate = '+2 years');
        $title = $lorem->sentence($nbWords = 3, $variableNbWords = true);

        DB::table('coupon')->insert([
            'id'=>$id,
            'title'=>$title,
            'price'=>$price,
            "type"=>$types[$i],
            'expiration'=>$expiration
        ]);
    }
}

该表更新了4行。需要您的帮助,不明白如何克服偏移量限制吗?还有其他配置吗?

Illuminate \ Foundation \ Bootstrap \ HandleExceptions :: handleError(“未定义偏移量:4”,“ C:\ xampp \ htdocs \ couponsystem \ database \ seeds \ CouponSeeder.php”]

laravel faker
2个回答
0
投票

$types数组只有4个元素,没有索引4

使用modulo 4确保数字永远不会超过3,并保持从0到3的循环。

"type" => $types[$i % 4],

0
投票

肯定是因为您的变量类型仅由4个元素组成,并且当foor循环中的变量i为4时,它将引发未定义偏移量4的错误。解决这个问题。

更改此,“类型” => $ types [$ i]

收件人,“类型” => $ types [rand(0,3)]

© www.soinside.com 2019 - 2024. All rights reserved.