Array_Push в php всегда добавляет последнее значение

#php #laravel

Вопрос:

Каждый

У меня проблема с использованием массива объектов и подделок в laravel.

Я попытался создать серию поддельных данных, используя подделку, для передачи в таблицу с использованием массива, но мое значение массива продолжает повторять одно и то же, хотя я уже использовал цикл for и подделку.

Твой ответ много значит для меня. Заранее спасибо.

Вот Мой Код контроллера:

 <?php

namespace AppHttpControllers;

use IlluminateHttpRequest;
use IlluminateSupportStr;
use FakerFactory as Faker;

class bio{
    public $nama;
    public $alamat;
    public $no;
    public $email;
}

class PegawaiCTRL extends Controller{
    public function faking(){
        
        $faker = Faker::create();
        $data  = new bio;
        $bio   = [];

        for ($i = 0; $i < 100; $i  ){
            $data->nama     = $faker->unique()->name('Male');
            $data->alamat   = $faker->unique()->address();
            $data->no       = $faker->unique()->phoneNumber();
            $data->email    = $faker->unique()->email();
            array_push($bio, $data);
        }
    
        return $bio;
        //return View('v_IPegawai', ['datas' => $bio]);
    }
}
 

Вывод

Ответ №1:

Вы каждый раз редактируете один и тот же объект, поэтому он обновляется новыми значениями. Вместо этого каждый раз создавайте новый объект в цикле, как показано ниже:

 $faker = Faker::create();
$bio   = [];

for ($i = 0; $i < 100; $i  ){
    $data  = new bio;
    $data->nama     = $faker->unique()->name('Male');
    $data->alamat   = $faker->unique()->address();
    $data->no       = $faker->unique()->phoneNumber();
    $data->email    = $faker->unique()->email();
    array_push($bio, $data);
}
 

Примечание: Пожалуйста, следите PSR-Standards за названиями классов. bio должно быть Bio .

Комментарии:

1. Это очень помогает! Спасибо вам, добрый сэр… Я последую вашему совету относительно соглашения об именах.