Ostatnie wiadomości

Strony: [1] 2 3 ... 10
1
Pomoc / Cookies nie ładują się [localhost][xampp]
« Ostatnia wiadomość wysłana przez Lenny dnia Luty 16, 2018, 00:45:27 »
Witam, ostatnio zacząłem pisać prostą apke z symfony 4 niestety podczas tworzenia formularzu z logowaniem napotkałem problem że żadne ciastka nie są ładowane na stronie, sprawdziłem w networkingu(zbadaj element) używam php 7 wraz z xamppem, wszystko robię na localhost. Ustawiałem różne rzeczy typu
framework:
    # sessions
    session:
        cookie_domain: '.%app_domain%'
        handler_id: session.handler.native_file
        save_path: '%kernel.project_dir%/var/sessions/%kernel.environment%'
ale i tak nadal nie chcą cię ciastka ładować, debuger symfony pokazuje że sesja jest aktywna. Czytałem że zamiast używać 'localhost' powinienem używać '127.0.0.1' ale i tak to nic nie zmieniło, jakieś porady?
2
Offtopic / Odp: [Kraków] Współpraca przy projekcie.
« Ostatnia wiadomość wysłana przez czerwonykapturek dnia Luty 07, 2018, 12:40:48 »
Bardzo fajny temat, mam nadzieję, że ciągle szukacie, to się nadam! ^
3
Pomoc / Odp: Doctrine wydajność
« Ostatnia wiadomość wysłana przez Valantir dnia Styczeń 23, 2018, 13:58:05 »
Ja zawsze robiłem po około 100 rekordów.

Tutaj przykład:
https://stackoverflow.com/questions/18654530/doctrine2-multiple-insert-in-one-shot

Na czas importu możesz wyłączyć logowanie zapytań:

$manager->getConnection()->getConfiguration()->setSQLLogger(null);
4
Pomoc / Doctrine wydajność
« Ostatnia wiadomość wysłana przez nicraM dnia Styczeń 22, 2018, 17:54:21 »
Witam
Piszę małą apkę, która musi korzystać z terytowej bazy danych http://eteryt.stat.gov.pl/eTeryt/rejestr_teryt/udostepnianie_danych/baza_teryt/uzytkownicy_indywidualni/pobieranie/pliki_pelne_struktury.aspx.
Na razie mam taki draft parsera:
protected function updateDatabase(SymfonyStyle $io, ProgressBar $bar)
{
$f = $this->terytDir . DIRECTORY_SEPARATOR . 'TERC.xml';

$bar->setMessage('Preparing to update DB Setting "Polska" as Country', 'status');
$bar->advance(1000);
$bar->advance(-1000);

$polska = $this->entityManager->getRepository(LocationCountry::class)->findOneByName('Polska');
if ($polska) {
$this->country = $polska;
} else {
$this->country = new LocationCountry();
$this->country->setName('Polska');
$this->entityManager->persist($this->country);
$this->entityManager->flush();
}

// Setting RODZ, RODZ_X from documentation on GUS pages
// http://eteryt.stat.gov.pl/eTeryt/rejestr_teryt/udostepnianie_danych/baza_teryt/uzytkownicy_indywidualni/pobieranie/pliki_pelne_struktury.aspx
$typeRepo = $this->entityManager->getRepository(LocationBoroughsType::class);
$stateRepo = $this->entityManager->getRepository(LocationState::class);
$districtRepo = $this->entityManager->getRepository(LocationDistrict::class);
$boroughRepo = $this->entityManager->getRepository(LocationBorough::class);
$boroughsTypeRepo = $this->entityManager->getRepository(LocationBoroughsType::class);

$types = [
'1' => 'gmina miejska',
'2' => 'gmina wiejska',
'3' => 'gmina miejsko-wiejska',
'4' => 'miasto w gminie miejsko-wiejskiej',
'5' => 'obszar wiejski w gminie miejsko-wiejskiej',
'8' => 'dzielnica w m.st. Warszawa',
'9' => 'delegatury miast: Kraków, Łódź, Poznań i Wrocław'
];

$bar->setMessage('Updateing Location Boroughs types', 'status');
foreach ($types as $k => $name){
$bar->advance();
if ($typeDb = $typeRepo->findOneBy(['idTeryt' => $k])){
if($typeDb->getName() === $name) {
continue;
} else {
$typeDb->setName($name);
}

} else {
$type = new LocationBoroughsType();
$type->setIdTeryt($k);
$type->setName($name);
$this->entityManager->persist($type);
}
}
$this->entityManager->flush();

foreach ($types as $k => $t) {
$this->boroughsTypes[$k] = $boroughsTypeRepo->findOneBy(['idTeryt' => $k]);
}


$data = [];

$xml = simplexml_load_file($f);

$bar->setMessage('Przetwarzam TERC', 'status');
$idx = 0;



foreach ($xml->catalog->row as $row) {

// if ($idx === 5) {
// break;
// }

// jeśli jest Województwo sprawdzamy dalej
if ($row->POW != ''){
if ($this->state->getIdent() != $row->WOJ) {
$this->state = $stateRepo->findOneBy(['ident' => $row->WOJ]);
}

// Sprawdzamy czy jest ustawiony powiat. Jeśli GMI brak to znaczy, że jest to powiat
if ($row->GMI != ''){
if ($this->state->getIdent() != $row->WOJ && $this->district != $row->POW){
$this->district = $districtRepo->findOneBy(['ident' => $row->POW, 'state' => $this->state]);
}
// jeśli gmina istnieje to zrobimy update
if ($borough = $boroughRepo->findOneBy(['ident' => $row->GMI, 'district' => $this->district])) {
//
} else { // Jeśli gminy nie ma to dodamy

$borough = new LocationBorough();
$borough->setIdent($row->GMI);
$borough->setDistrict($this->district);
$borough->setName($row->NAZWA);
if ($row->RODZ->__toString() !== null ) {
$borough->setType($this->boroughsTypes[$row->RODZ->__toString()]);
}
$this->entityManager->persist($borough);
}
$this->entityManager->flush();
} else { // nie ma powiatu to go dodamy

$bar->setMessage('Setting district: ' . $row->NAZWA.' ident: '.$row->POW.' state: '.$this->state->getName(), 'status');
$bar->advance(1000);
$bar->advance(-1000);

if (!$this->state->getIdent() != $row->WOJ){
$this->state = $stateRepo->findOneBy(['ident' => $row->WOJ]);
}

// Sprawdzamy, czy już taki istnieje. Jeśli tak, to go updateujemy

if ($district = $districtRepo->findOneBy(['ident' => $row->POW, 'state' => $this->state]))
{
$district->setName($row->NAZWA);
$district->setState($this->state);

} else {
$district = new LocationDistrict();
$district->setIdent($row->POW);
$district->setName($row->NAZWA);
$district->setState($this->state);
$this->entityManager->persist($district);

}

$this->entityManager->flush();
$this->district = $district;

$bar->advance(1000);
$bar->advance(-1000);
}
}
else { // nie ma województwa więc je dodamy
$bar->setMessage('Setting state: ' . $row->NAZWA, 'module');

if ($state = $stateRepo->findOneBy(['ident' => $row->WOJ])) {
if ($state->getName() !== $row->NAZWA){
$state->setName($row->NAZWA);
$this->entityManager->flush();
}
} else {
$state = new LocationState();
$state->setCountry($this->country);
$state->setIdent($row->WOJ);
$state->setName($row->NAZWA);
$this->entityManager->persist($state);
$this->entityManager->flush();
}
// ustawiam powiat by w pętli nie wykonwyać ciągle selectów
$this->state = $state;

$bar->advance(1000);
$bar->advance(-1000);
}
$bar->advance();
$idx++;
}

$data['STAN_NA'] = $xml->catalog['date'];

$bar->setMessage('SIMC Teryt DONE', 'status');
);
return true;

}
Parsowanie i wrzucanie do DB trochę trwa :/ nie wiem czy nie dałoby się tego jakoś wydajniej zrobić.
Jak z flushowaniem danych? czy lepiej zrobić co insert flush czy może tak jak jest tu w kodzie robić partiami?
5
Pomoc / Cała tabela danych w jednym formularzu
« Ostatnia wiadomość wysłana przez solar2017 dnia Styczeń 09, 2018, 19:46:05 »
Witajcie

Nie wiem jak podejść do realizacji takiego formularza.
Mam tabelę w bazie - proste sprawozdanie - Imię nazwisko i parę pól z liczbami.
Mogę to wyświetlić ładnie w tabelce, mogę edytować w formularzu pojedynczy rekord z bazy - to ogarniam, nie ma problemu - działa.

Ale chciałem pobrać z bazy wszystkie rekordy (max około 100 sztuk) i wyświetlić je wszystkie w jednym formularzu w postaci tabeli - jeden wiersz - jeden rekord.
Chcę mieś możliwość edytowania wszystkich na raz - nie pojedynczo.
Do tego submit, tak żeby zapisać wszystkie do właściwych miejsc.

Zrobiłem formularz dla pojedynczego rekordu, i drugi - taki wrapper do którego chcę inkludować odpowiednią ilość tych pojedynczych. Próbowałem to z CollectionType, ale coś mi nie działa.
Może ktoś będzie w stanie podpowiedzieć w jakim kierunku podążać żeby to zrobić?

Poniżej trochę kodu:

Akcja w kontrolerze:
$spr = $repoSpr->getSprawozdanie(); <- tu dostaję tablicę z rekordami typu entity
$form = $this->createForm(SprawozdanieWrapperType::class, $spr);

SprawozdanieType.php
namespace AppBundle\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;

class SprawozdanieType extends AbstractType
{
    /**
     * {@inheritdoc}
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder->add('nazwiskoImie');
        $builder->add('wartość1');
        $builder->add('wartość2');
        $builder->add('wartość3');
    }
   
    /**
     * {@inheritdoc}
     */
    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => 'AppBundle\Entity\Sprawozdanie',
        ));
    }

    /**
     * {@inheritdoc}
     */
    public function getBlockPrefix()
    {
        return 'appbundle_sprawozdanie';
    }
}

SprawozdanieWrapperType.php
namespace AppBundle\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\CollectionType;
use AppBundle\Entity\Sprawozdanie;

class SprawozdanieWrapperType extends AbstractType
{
    /**
     * {@inheritdoc}
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder->add('persons', CollectionType::class,array(
            'entry_type' => SprawozdanieType::class,
        ));

    }
   
    /**
     * {@inheritdoc}
     */
    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => Sprawozdanie::class,
        ));
    }

    /**
     * {@inheritdoc}
     */
    public function getBlockPrefix()
    {
        return 'appbundle_sprawozdanie_wrapper';
    }
}
6
Pomoc / Odp: Nie działa dynamiczny formularz
« Ostatnia wiadomość wysłana przez dgay dnia Styczeń 02, 2018, 15:27:02 »
Witam. Mam podobny problem i otrzymuję błąd :

Cytuj
Type error: Argument 2 passed to AppBundle\Form\GetModelType::AppBundle\Form\{closure}() must be an instance of AppBundle\Entity\Brand or null, instance of Doctrine\Common\Collections\ArrayCollection given, called in /src/AppBundle/Form/GetModelType.php on line 49

Zdarzał się Tobie ten błąd?

7
Offtopic / Odp: [POZNAŃ] Młodszy Programista PHP (studenci)
« Ostatnia wiadomość wysłana przez Banek dnia Grudzień 30, 2017, 11:28:12 »
8
Pomoc / Nie działa dynamiczny formularz
« Ostatnia wiadomość wysłana przez kamil161g dnia Grudzień 23, 2017, 16:40:27 »
Witam czy pomoglby mi ktos z formularzem ? Probuje go zrobic juz od paru dni, ale nie wychodzi nic :/

Jest to dynamiczny form i po wybraniu dywizji nie wczytuje sie wgl liga :/ Co moze byc nie tak ?

Form:
<?php

namespace App\Form;


use 
App\Entity\Team;
use 
Symfony\Bridge\Doctrine\Form\Type\EntityType;
use 
Symfony\Component\Form\AbstractType;
use 
Symfony\Component\Form\FormBuilderInterface;
use 
Symfony\Component\Form\FormEvent;
use 
Symfony\Component\Form\FormEvents;
use 
Symfony\Component\Form\FormInterface;


class 
addMatchType extends AbstractType
{

    public function 
buildForm(FormBuilderInterface $builder, array $options)
    {
        
$builder
            
->add('division'EntityType::class, array(
                
'class'       => 'App\Entity\Team',
                
'placeholder' => '',
                
'choice_label' => 'division',

            ));
        
$formModifier = function (FormInterface $formTeam $team null) {
            
$league null === $team ? array() : $team->getLeague();
            
$form->add('league'EntityType::class, array(
                
'class'       => 'App\Entity\Team',
                
'placeholder' => '',
                
'choices' => $league,
            ));
        };
        
$builder->addEventListener(
            
FormEvents::PRE_SET_DATA,
            function (
FormEvent $event) use ($formModifier) {
                
// this would be your entity, i.e. SportMeetup
                
$data $event->getData();
                
$formModifier($event->getForm(), $data->getDivision());
            }
        );
        
$builder->get('division')->addEventListener(
            
FormEvents::POST_SUBMIT,
            function (
FormEvent $event) use ($formModifier) {
                
// It's important here to fetch $event->getForm()->getData(), as
                // $event->getData() will get you the client data (that is, the ID)
                
$team $event->getForm()->getData();
                
// since we've added the listener to the child, we'll have to pass on
                // the parent to the callback functions!
                
$formModifier($event->getForm()->getParent(), $team);
            }
        );
    }

}



Twig:
{{ form_start(form) }}
    {{ form_row(form.division) }}    {# <select id="meetup_sport" ... #}
    {{ form_row(form.league) }} {# <select id="meetup_position" ... #}
    {# ... #}
{{ form_end(form) }}

<head>
<script   src="https://code.jquery.com/jquery-2.2.4.min.js"   integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44="   crossorigin="anonymous"></script>
<script>
    var $division = $('#add_match_division');
    // When sport gets selected ...
    $division.change(function() {
        // ... retrieve the corresponding form.
        var $form = $(this).closest('form');
        // Simulate form data, but only include the selected sport value.
        var data = {};
        data[$division.attr('division')] = $division.val();
        // Submit data via AJAX to the form's action path.
        $.ajax({
            url : $form.attr('action'),
            type: $form.attr('method'),
            data : data,
            success: function(html) {
                // Replace current position field ...
                $('#add_match_league').replaceWith(
                    // ... with the returned one from the AJAX response.
                    $(html).find('#add_match_league')
                );
                // Position field now displays the appropriate positions.
            }
        });
    });
</script>
</head>
9
Pomoc / doctrine utrwalanie w bazie DateTime
« Ostatnia wiadomość wysłana przez fanti001 dnia Grudzień 22, 2017, 15:51:28 »
po dodaniu w encji:   
  /**
     * @ORM\Column(type="datetime", nullable=true)
     */
    private $create;
w controlerze:
$orderPrint->setCreate(new \DateTime('now'));
mam taki błąd:
An exception occurred while executing 'INSERT INTO order_print (create, customer, price, description) VALUES (?, ?, ?, ?)' with params ["2017-12-22 15:44:40", "Kuziolek", 35.78, "to jest Test"]:
create jest obiektem DateTime:
App\Entity\OrderPrint Object
(
    [id:App\Entity\OrderPrint:private] =>
    [create:App\Entity\OrderPrint:private] => DateTime Object
        (
            [date] => 2017-12-22 15:44:40.032418
            [timezone_type] => 3
            [timezone] => Europe/Berlin
        )

    [customer:App\Entity\OrderPrint:private] => Kuziolek
    [price:App\Entity\OrderPrint:private] => 35.78
    [description:App\Entity\OrderPrint:private] => to jest Test
)

symfony 4

pewnie to jakiś drobiazg, ale dotkliwy dla mnie

Gdzieś był bład ale zrobiłem jeszcze raz i jest OK.
10
Pomoc / Symfony 4, manualne logowanie,
« Ostatnia wiadomość wysłana przez Lenny dnia Grudzień 20, 2017, 21:58:52 »
Witam zacząłem dziś 'mały' projekcik w symfony 4 by troche się tego frameworka nauczyć, próbowałem z tym poradnikiem: https://symfony.com/doc/current/security/form_login_setup.html
zrobić logowanie problem mój polega na tym że przy podaniu dobrego email/hasła loguje mnie całyc czas jako anon. a nie jako uzytkownika z bazy,
z tego co przeczytałem to kiedy nie podam w security.yaml pewnego parametru w providers powinna się odalić metoda: loadUserByUsername w UserRespository, niestety nie dzieje się to(sprawdzałem dumpem)
po niżej moje klasy/configi
security.yaml
security:

    encoders:
        App\Entity\User:
            algorithm: bcrypt

    providers:
        appdb:
            id: App\Repository\UserRepository
    firewalls:
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false
        main:
            anonymous: ~
            form_login:
                login_path: /auth/login
                check_path: /auth/login
                default_target_path: panel_dashboard
#                csrf_token_generator: security.csrf.token_manager
            logout:
                path:   /auth/logout
            guard:
                authenticators:
                    - App\Security\Authenticator\OauthConnectAuthenticator

    access_control:
        - { path: ^/auth, roles: IS_AUTHENTICATED_ANONYMOUSLY }
auth controller metoda login:
    public function login(Request $request, AuthenticationUtils $authUtils)
    {
        // get the login error if there is one
        $error = $authUtils->getLastAuthenticationError();
        // last username entered by the user
        $lastUsername = $authUtils->getLastUsername();
        return $this->render('auth/login.html.twig', array(
            'last_username' => $lastUsername,
            'error' => $error,
        ));
    }
i metoda loadUserByUsername
    public function loadUserByUsername($username)
    {
        $user = $this->createQueryBuilder('u')
            ->where('u.email = :email')
            ->setParameter('email', $username)
            ->getQuery()
            ->getOneOrNullResult();

        if(!$user) {
            throw new UsernameNotFoundException();
        }

        return $user;
    }
Jakies pomysły jakie błedy popełniłem?
Strony: [1] 2 3 ... 10