app/Tree.php
public function createRecord(string $gedcom): GedcomRecord
    {
        if (!Str::startsWith($gedcom, '0 @@ ')) {
            throw new InvalidArgumentException('GedcomRecord::createRecord(' . $gedcom . ') does not begin 0 @@');
        }

        $xref   = $this->getNewXref();
        $gedcom = '0 @' . $xref . '@ ' . Str::after($gedcom, '0 @@ ');

        // Create a change record
        $gedcom .= "\n1 CHAN\n2 DATE " . date('d M Y') . "\n3 TIME " . date('H:i:s') . "\n2 _WT_USER " . Auth::user()->userName();

        // Create a pending change
        DB::table('change')->insert([
            'gedcom_id'  => $this->id,
            'xref'       => $xref,
            'old_gedcom' => '',
            'new_gedcom' => $gedcom,
            'user_id'    => Auth::id(),
        ]);

        // Accept this pending change
        if (Auth::user()->getPreference('auto_accept')) {
            FunctionsImport::acceptAllChanges($xref, $this);

            return new GedcomRecord($xref, $gedcom, null, $this);
        }

        return GedcomRecord::getInstance($xref, $this, $gedcom);
    }
public function createRecord(string $gedcom): GedcomRecord
    {
        if (!Str::startsWith($gedcom, '0 @@ ')) {
            throw new InvalidArgumentException('GedcomRecord::createRecord(' . $gedcom . ') does not begin 0 @@');
        }

        $xref   = $this->getNewXref();
        $gedcom = '0 @' . $xref . '@ ' . Str::after($gedcom, '0 @@ ');

        // Create a change record
        $gedcom .= "\n1 CHAN\n2 DATE " . date('d M Y') . "\n3 TIME " . date('H:i:s') . "\n2 _WT_USER " . Auth::user()->userName();

        // Create a pending change
        DB::table('change')->insert([
            'gedcom_id'  => $this->id,
            'xref'       => $xref,
            'old_gedcom' => '',
            'new_gedcom' => $gedcom,
            'user_id'    => Auth::id(),
        ]);

        // Accept this pending change
        if (Auth::user()->getPreference('auto_accept')) {
            FunctionsImport::acceptAllChanges($xref, $this);

            return new GedcomRecord($xref, $gedcom, null, $this);
        }

        return GedcomRecord::getInstance($xref, $this, $gedcom);
    }
public function createRecord ( string $ gedcom ) : GedcomRecord { if ( ! Str :: startsWith ( $ gedcom , '0 @@ ' ) ) { throw new InvalidArgumentException ( 'GedcomRecord::createRecord(' . $ gedcom . ') does not begin 0 @@' ) ; } $ xref = $ this -> getNewXref ( ) ; $ gedcom = '0 @' . $ xref . '@ ' . Str :: after ( $ gedcom , '0 @@ ' ) ; // Create a change record $ gedcom .= "\n1 CHAN\n2 DATE " . date ( 'd M Y' ) . "\n3 TIME " . date ( 'H:i:s' ) . "\n2 _WT_USER " . Auth :: user ( ) -> userName ( ) ; // Create a pending change DB :: table ( 'change' ) -> insert ( [ 'gedcom_id' => $ this -> id , 'xref' => $ xref , 'old_gedcom' => '' , 'new_gedcom' => $ gedcom , 'user_id' => Auth :: id ( ) , ] ) ; // Accept this pending change if ( Auth :: user ( ) -> getPreference ( 'auto_accept' ) ) { FunctionsImport :: acceptAllChanges ( $ xref , $ this ) ; return new GedcomRecord ( $ xref , $ gedcom , null , $ this ) ; } return GedcomRecord :: getInstance ( $ xref , $ this , $ gedcom ) ; }
Create a new record from GEDCOM data.

@param string $gedcom

@return GedcomRecord|Individual|Family|Note|Source|Repository|Media
@throws InvalidArgumentException
Create a new record from GEDCOM data .