Symfony/Pimcore csv import

Pagina: 1
Acties:
  • 406 views

Vraag


Acties:
  • 0 Henk 'm!

  • Ralfefernandes1
  • Registratie: Juli 2018
  • Laatst online: 23-02 01:31
Hi Tweakers,

Ik ben op dit moment Symfony/Pimcore aan het leren

Nu wil ik mijn CSV-file importeren, via de commando. Ik heb al er van alles geprobeerd. Het is niet zo makkelijk als met Laravel en Magento.

Ik wil dit binnen pimcore doen.

Dit is de code die ik al geprobeerd heb, maar helaas doet het niet… maar tegelijktijdig zie ik dat de code kan de velden van de tabellen uitlezen.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
protected function configure()
{
    $this
        ->setName('branch:import')
        ->setDescription('Branch cagai');
}

/**
 * @param InputInterface $input
 * @param OutputInterface $output
 *
 * @return void
 * @throws UnableToProcessCsv
 */
protected function  execute(InputInterface $input, OutputInterface $output): void
{
    $io = new SymfonyStyle($input, $output);
    $io->title('Attempting import of Feed...');
    $reader = Reader::createFromPath('%kernel.root_dir%/../public/branch.csv');

    // https://github.com/thephpleague/csv/issues/208
    $results = $reader->fetchColumn();

    foreach ($results as $row){
        // create new branch
        $branch = (new Branch())
            ->setMcmcu('mcmcu')
            ->setMcco('mcco');
        $this->em->persist($branch);

    }
    $this->em->flush();
    $io->success('command exited cleanly!');
}

Alle reacties


Acties:
  • +1 Henk 'm!

  • chedar
  • Registratie: Oktober 2019
  • Laatst online: 23:57
Je doet niks met $row?

Acties:
  • 0 Henk 'm!

  • Ralfefernandes1
  • Registratie: Juli 2018
  • Laatst online: 23-02 01:31
Ik had eigenlijk niet door. Ik ga opnieuw uitvoeren.

Thanks

Acties:
  • 0 Henk 'm!

  • Ralfefernandes1
  • Registratie: Juli 2018
  • Laatst online: 23-02 01:31
Dit is de code die ik geschreven heb op basis van de documentatie. Maar ik heb het gevoel dat ik mis de code waarmee je de path moet aangeven waar de CSV-file zich bevindt.
Ten tweede wil ik kunnen aangeven via de code dat bijvoorbeeld row 4 moet als standard zijn op dropmenu

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
class Branch extends AbstractCommand
{
    protected function configure()
    {
     $this
        ->setName('branch:importar')
        ->setDescription('Project Culomborg');
    }

    /**
     * @throws \Exception
     */
    protected function execute(InputInterface $input, OutputInterface $output): DataObject\Branch
    {
        //create single object

        $branchImport = new DataObject\Branch();
        foreach ($branchImport as $row) {
            $branchImport->setMcmcu($row['mcmcu']);
            $branchImport->setMcco($row['mcco']);
            $branchImport->setMcdl01($row['mcdl01']);
            $branchImport->setSales($row['']);
            $branchImport->setPublished(true);
            $branchImport->save();
        }
        $output->writeln("Created object " . $branchImport->getFullPath('public/branch.csv') . "\n");

        return $branchImport;
    }
}


en dit is wat in de documentatie staat:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 protected function execute(InputInterface $input, OutputInterface $output): int
    {
        //create single object
        $object = new DataObject\Myclass();
        $object->setKey(1);
        $object->setParentId(1);
        $object->setPublished(true);
        $object->setMyattribute("This is a test");
        $object->save();


        // or create multiple objects
        for ($i = 0; $i < 60; $i++) {
            $o = new DataObject\News();
            $o->setKey(uniqid() . "-" . $i);
            $o->setParentId(1);
            $o->setPublished(true);
            $o->save();

            $output->writeln("Created object " . $o->getFullPath() . "\n");
        }
    }

bron: https://pimcore.com/docs/...l_System_Interaction.html

Acties:
  • 0 Henk 'm!

  • chedar
  • Registratie: Oktober 2019
  • Laatst online: 23:57
Volgens mij moet je gewoon als basis je oude code weer gebruiken maar de foreach vervangen door je nieuwe code snippet.

Want in je eerste code snippet doe je niks met je uitgelezen csv. En in je nieuwe code snippet haal je csv data niet eens op maar wil je wel iets verwerken.

Acties:
  • 0 Henk 'm!

  • Ralfefernandes1
  • Registratie: Juli 2018
  • Laatst online: 23-02 01:31
Now i have this issues if i hit this command:

code:
1
 There are no commands defined in the "branch" namespace.


This is the code
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
namespace App\Command;
use Pimcore\Console\AbstractCommand;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Pimcore\Model\DataObject;
use Symfony\Component\Console\Helper\ProgressBar;


/**
 * @method getContainer()
 * @property $em
 */
class Branch extends AbstractCommand
{
    protected function configure(): void
    {
        $this
            ->setName('branch:import')
            ->setDescription('Branch cagai');
    }


t
And this is the command:
code:
1
php bin/console branch:import

What i'm doing wrong?

[ Voor 5% gewijzigd door Ralfefernandes1 op 01-08-2022 16:24 ]


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Laatst online: 02:58

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

Beste @Ralfefernandes1,

Je hebt nu al 3 keer in dit topic een stuk code gepost met "dit is mijn code en hij doet 't niet". We verwachten hier wel wat eigen inzet en daar zie ik niets van terug. Ik wil je dan ook vriendelijk verzoeken onze Quickstart door te nemen en 't daarna met een nieuw topic te proberen.

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Pagina: 1

Dit topic is gesloten.