przewiń do treści

Symfony w przykładach

Włodzimierz Gajda

FilmHasAktorPeer::doDeleteAll();
AktorPeer::doDeleteAll();
FilmPeer::doDeleteAll();

require_once 'lib/pomocnicze.inc.php';
require_once 'lib/slugs.inc.php';

$plk = file('data/filmy.txt');
shuffle($plk);
foreach ($plk as $linia) {
    $tmp = parsuj_film(trim($linia));

    echo $tmp['tytul'] . "\n";

    $c = new Criteria();
    $c->add(FilmPeer::TYTUL, $tmp['tytul']);
    $film = FilmPeer::doSelectOne($c);
    if (!$film) {
        $film = new Film();
        $film->setTytul($tmp['tytul']);
        $film->setSlug(string2slug($tmp['tytul']));
        $film->save();
    }

    foreach ($tmp['aktorzy'] as $a) {
        $c = new Criteria();
        $c->add(AktorPeer::IMIE, $a['imie']);
        $c->add(AktorPeer::NAZWISKO, $a['nazwisko']);
        $aktor = AktorPeer::doSelectOne($c);
        if (!$aktor) {
            $aktor = new Aktor();
            $aktor->setImie($a['imie']);
            $aktor->setNazwisko($a['nazwisko']);
            $aktor->setSlug(string2slug($a['imie'] . ' ' . $a['nazwisko']));
            $aktor->save();
        }

        $fha = new FilmHasAktor();
        $fha->setFilm($film);
        $fha->setAktor($aktor);
        try {
            $fha->save();
        } catch (PropelException $e) {
            echo 'ERROR: ' . $e->getMessage() . '<br />';
        }

    }
}

Listing 16.2. Fragment pliku propelImportdanychTask.class.php

Rozdział 16. Relacje n:m

listing-16-02.txt