Začátek s Nette – Nic mi nefunguje
- Blackrat
- Člen | 17
Zdravím, dneska jsem si nainstaloval Nette dle návodu a od první chvíle mi nic nefunguje.
- Spustil jsem příkaz composer create-project nette/web-project nette-blog to bylo ještě v pořádku. Pak byla sekce „Úklid“, kde jsme měl smazat obsah app/Presenters/templates/Homepage/default.latte a nahradit jej „Hello World“. To že musím promazat Cache se nikde nikdo v návodu nezmínil, ale ok.
- Další v pořadí v návodu je Tracy. Příkaz composer require tracy/tracy asi funguje, jelikož v composer.json mám tracy/tracy uvedeno. Každopádně nemám tušení, kam umístit toto: https://ibb.co/68V6q8h
Jakož někdo, kdo začal před pár hodinami absolutně nemám tušení, pod jakou knihovnu v jakým souboru atd..
- Formuláře. Nette/forms mám dle composer.json nainstalované. Vytvořil jsem si form.php a tam vložil
use Nette\Application\UI\Form;
$form = new Form;
$form->addText(‚name‘, ‚Jméno:‘);
$form->addPassword(‚password‘, ‚Heslo:‘);
$form->addSubmit(‚send‘, ‚Registrovat‘);
$form->onSuccess[] = [$this, ‚formSucceeded‘];
Boužel též nevím, jestli to má být v <?php?> nebo ne, každopádně ani jedna verze mi nefunguje. V přiloženém návodu dle kterého pracuju se nic víc nepíše. https://ibb.co/rpYxWfZ
Našla by se nějaká hodná důše, která by mi řekla, mi kde chybí prosím?
Děkuji
- Gappa
- Nette Blogger | 209
Blackrat napsal(a):
Zdravím, dneska jsem si nainstaloval Nette dle návodu a od první chvíle mi nic nefunguje.
- Spustil jsem příkaz composer create-project nette/web-project nette-blog to bylo ještě v pořádku. Pak byla sekce „Úklid“, kde jsme měl smazat obsah app/Presenters/templates/Homepage/default.latte a nahradit jej „Hello World“. To že musím promazat Cache se nikde nikdo v návodu nezmínil, ale ok.
Tady bude nejspíš problém v tom, že Quickstart předpokládá webserver běžící na localhostu, ze kterého Nette pozná, že má běžet v dev režimu. V tvém případě tomu tak nejspíš není, tudíž nahrazení obsahu šablony se projeví až po promazání cache (což je chování žádoucí, ale jen v produkčním režimu). Trefil jsem se?
- Další v pořadí v návodu je Tracy. Příkaz composer require tracy/tracy asi funguje, jelikož v composer.json mám tracy/tracy uvedeno. Každopádně nemám tušení, kam umístit toto: https://ibb.co/68V6q8h
Jakož někdo, kdo začal před pár hodinami absolutně nemám tušení, pod jakou knihovnu v jakým souboru atd..
Přímo tato část v Quickstartu není, je tam odkaz na více informací o Tracy, která může být použita samostatně (tj. bez Nette). Tracy by tam standardně být měla, akorát je skrytá, protože produkční režim (tj. asi stejný problém jako v bodě 1).
- Formuláře. Nette/forms mám dle composer.json nainstalované. Vytvořil jsem si form.php a tam vložil
use Nette\Application\UI\Form;
$form = new Form;
$form->addText(‚name‘, ‚Jméno:‘);
$form->addPassword(‚password‘, ‚Heslo:‘);
$form->addSubmit(‚send‘, ‚Registrovat‘);
$form->onSuccess[] = [$this, ‚formSucceeded‘];
Toto je ukázkový/izolovaný kód.
V přiloženém návodu dle kterého pracuju se nic víc nepíše. https://ibb.co/rpYxWfZ
O screenshot a dva odstavce níže je ukázka, kde formulář definovat (v Presenteru), zpracovat i vykreslit :)
https://doc.nette.org/…in-presenter#…
Boužel též nevím, jestli to má být v <?php?> nebo ne, každopádně ani jedna verze mi nefunguje.
Toto jsou naprosté základy PHP. Je to PHP kód, takže to musí být v
<?php
.
- Blackrat
- Člen | 17
Mám cca takovýhle kus kódu v /app/Presenters/@layout.latte. Co
s tím, kam s tím?
<?php
declare(strict_types=1);
namespace App\Presenters;
use Nette;
use Nette\Application\UI\Form;
class HomepagePresenter extends Nette\Application\UI\Presenter
{
protected function createComponentRegistrationForm(): Form
{
$form = new Form;
$form->addText(‚Username‘, ‚Jméno:‘)
->setRequired();
$form->addPassword(‚Password‘, ‚Heslo:‘)
->setRequired();
$form->addSubmit(‚send‘, ‚Registrovat‘);
$form->onSuccess[] = [$this, ‚formSuccess‘];
return $form;
}
public function formSuccess(Form $form, $data): void
{
// tady zpracujeme data odeslaná formulářem
// $data->name obsahuje jméno
// $data->password obsahuje heslo
$this->template->add(‚form_name‘,$data->name);
$this->template->add(‚form_password‘,$data->password);
}
}
- Pepino
- Člen | 257
@Blackrat Asi bude dobré si prostudovat https://doc.nette.org/cs/ a pak se ptát na konkrétní problémy. Z tvých otázek mám pocit že vůbec nemáš šajn co děláš.
Ten kód co posíláš určitě nemá být v @layout.latte
ale
v HomepagePresenter.php