Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Mario Brunmayr:26.6.2017 2:28

Ahoj, mám tento kod a u řádku 16. mám chybu Class 'App\Presenter­s\Form' not found. Formulář jsem dělal podle nette návodu, takže nechápu co je za problém s načtením dané třídy

<?php

namespace App\Presenters;

use Nette;
use Nette\Application\UI;

class RegistracePresenter extends Nette\Application\UI\Presenter
{
    protected function createComponentRegistraceFormular()
    {
        $form = new UI\Form;
        $form->addText('name', 'Jméno:');
        $form->addPassword('password', 'Heslo:')
            ->setRequired()
            ->addRule(Form::PATTERN, 'Musí obsahovat číslici', '.*[0-9].*')
            ->addRule(Form::MIN_LENGTH, 'Heslo musí mít alespoň %d znaky', 7);

        $form->addPassword('heslo_znovu', 'Heslo pro kontrolu:')
        ->setRequired('Zadejte prosím heslo ještě jednou pro kontrolu')
        ->addRule(Form::EQUAL, 'Hesla se neshodují', $form['password']);

        $form->addEmail('email', 'email:');

        $form->addSubmit('registrovat', 'Registrovat');
        $form->addProtection('Vypršel časový limit, odešlete formulář znovu', 10);
        $form->onSuccess[] = [$this, 'registraceFormularUspech'];
        return $form;
    }

    // volá se po úspěšném odeslání formuláře
    public function registraceFormularUspech(UI\Form $form, $values)
    {
        // ...
        $this->flashMessage('Byl jste úspěšně registrován.');
        $this->redirect('Homepage:');
    }

    public function renderregistrace()
    {
  //  $this->template->registrace; //= $this->$default;
    }
}

Předem děkuji za pomoc

Mario Brunmayr

 
Odpovědět
26.6.2017 2:28
Avatar
Odpovídá na Mario Brunmayr
Mario Brunmayr:26.6.2017 2:38

Nefunguje mi JS validace, něco jsem o tom četl v dokumentaci, dnes již jdu spát ale předpokládám že to bude tím.

 
Nahoru Odpovědět
26.6.2017 2:38
Avatar
Jindřich Máca
Tvůrce
Avatar
Odpovídá na Mario Brunmayr
Jindřich Máca:26.6.2017 2:43

Ahoj, to je jednoduché. Všude používáš třídu Form s namespace UI tj. UI\Form, tak nemůžeš najednou napsat pouze Form:

...
->addRule(Form::PATTERN, 'Musí obsahovat číslici', '.*[0-9].*')
...

Musíš všude psát:

...
->addRule(UI\Form::PATTERN, 'Musí obsahovat číslici', '.*[0-9].*')
...

Nebo si musíš adekvátně upravit use... ;)

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
26.6.2017 2:43
Avatar
Jindřich Máca
Tvůrce
Avatar
Odpovídá na Mario Brunmayr
Jindřich Máca:26.6.2017 2:46

Tohle nemá s JS validací vůbec nic společného. Pokud Tě snad něco takového napadlo, mám z toho pocit, že trochu tápeš. Možná bych doporučil nejdřív se pořádné naučit jazyk PHP a OOP principy, než se pouštěl do komplexního frameworku, který na nich staví. Zdejší tutoriály jsou Ti plně k dispozici - https://www.itnetwork.cz/php. ;)

 
Nahoru Odpovědět
26.6.2017 2:46
Avatar
Odpovídá na Jindřich Máca
Mario Brunmayr:26.6.2017 3:10

Děkuji za pomoc, ano s tím JS to byla blbost jen zatím úplně nevim co mám od nette očekávat. Čistém PHP jsem už něco napsal a po tom co se umim registrovat , přihlašovat, odhlašovat, vkládat a získavat data z DB tak i nějak vyprchala motivace se učit nové věci jako například jmenné prostory, u kterých jsem neviděl žádný větší smysl ale v nette se bez nich neobejdu.

 
Nahoru Odpovědět
26.6.2017 3:10
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.