NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
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í.

Diskuze – Lekce 8 - Jednoduchý redakční systém v Nette - Dokončení administrace

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Jan Říha
Člen
Avatar
Jan Říha:3.2.2017 22:33

PHP Version 5.6.29-0+deb8u1,
innodb_version 5.7.17,
Snažil jsem se nic neměnit.
Google pro výše uvedenou chybu doporučuje: sql_mode nemá být strict.
Nevím, zda-li to s tím souvisí, ale phpinfo() říká: session.use_stric­t_mode Off Off.
Když v ArticlePresen­ter.php odstraním řádek
$form->addHidden('ar­ticle_id')->addRule(Form::IN­TEGER);
chyba: Undefined property: Nette\Utils\A­rrayHash::$ar­ticle_id, která ukazuje také do ArticleManager.php metody public function saveArticle($ar­ticle) na řádek if (!$article[sel­f::COLUMN_ID])
Když do metody saveArticle($ar­ticle) vložím pouze:
$this->database->table(self::TAB­LE_NAME)->insert($article);
pak se článek uloží.

 
Odpovědět
3.2.2017 22:33
Avatar
Jindřich Máca
Tvůrce
Avatar
Odpovídá na Jan Říha
Jindřich Máca:4.2.2017 18:16

To, co popisuješ, se všechno chová tak, jak by mělo. Pro tu chybu je asi tady opravdu nutné vypnout striktní mód databáze tak, jak napovídá Google. Ovšem session.use_stric­t_mode s tím nemá nic společného, to je nastavení módu pro PHP Sessions. ;)

 
Odpovědět
4.2.2017 18:16
Avatar
Jan Říha
Člen
Avatar
Jan Říha:4.2.2017 21:02
  1. odstranil jsem: ->addRule(Form::IN­TEGER),
  2. na serveru jsem vytvořil soubor: /etc/mysql/con­f.d/disable_stric­t_mode.cnf
  3. do souboru jsem zapsal:

[mysqld]
sql_mode=IGNO­RE_SPACE,NO_ZE­RO_IN_DATE,NO_ZE­RO_DATE,ERROR_FOR_DI­VISION_BY_ZERO,NO_A­UTO_CREATE_USER,NO_EN­GINE_SUBSTITU­TION

  1. restartoval jsem mysql: service mysql restart

a funguje to.
Dík za odpovědi.

 
Odpovědět
4.2.2017 21:02
Avatar
Karl
Člen
Avatar
Karl:15.2.2017 10:55

Jindro a jak Ty máš nastavené my.ini ?

mám WAMP s PHP 7.0.10 a MySQL 5.7.14
když nastavím v my.ini sql-mode="" tak to funguje
když to nechám default, tedy zakomentuji v my.ini ;sql-mode="" (zakomentován) tak to nefunguje

jinak toto mi nepomohlo sql-mode=„NO_AUTO_VA­LUE_ON_ZERO“ – chybu to házelo dále

Kárl

 
Odpovědět
15.2.2017 10:55
Avatar
Karl
Člen
Avatar
Odpovídá na Karl
Karl:15.2.2017 11:13

a pokud to udělám jako p.Říha, (tedy sql_mode=IGNO­RE_SPACE,NO_ZE­RO_IN_DATE,NO_ZE­RO_DATE,ERROR_FOR_DI­VISION_BY_ZERO,NO_A­UTO_CREATE_USER,NO_EN­GINE_SUBSTITU­TION)

tak mi to vyhodí chybu:

Integrity constraint violation: 1048 Column 'product_id' cannot be null

 
Odpovědět
15.2.2017 11:13
Avatar
Jindřich Máca
Tvůrce
Avatar
Odpovídá na Karl
Jindřich Máca:15.2.2017 19:39

Já to mám obecně trochu jinak, protože používám Linux. Každopádně mám klasické php.ini a zde jednoduše nastavené:

sql.safe_mode = Off

Více informací - http://php.net/…ini.core.php#… ;)

Nicméně, když jsi použil řešení od Jan Říha, tak to pravděpodobně fungovalo, ale máš tam potom ještě jinou chybu a to nejspíše v chybějícím ID. :)

 
Odpovědět
15.2.2017 19:39
Avatar
Karl
Člen
Avatar
Karl:15.2.2017 20:49

Nicméně mě tuto chybu háže každý insert v celém projektu Nette Eshop - stažen zip z posledního dílu s nahrazením Nette za 2.4

háže mi to jak localhost tak i na hostingu (Savana)
a jelikož to druhým funguje, musí to být někde v nastavení, aby MySQL nevadilo, že zadávám ´´ a místo toho zafungoval autoincrement

snad kvůli tomu nebudu přepisovat všechny inserty, navíc nevím jestli to pak neudělá paseku při editaci záznamu, tam se přeci id zase musí předávat

respektive nastavení v my.ini (překvapuje mě že ho nemáš) mě to s tímto nastavením
sql-mode="" funguje, jenom nevím, co jsem tím ještě ovlivnil

ještě podotknu, že to nastavení, kdy mi to vyhazuje chybu je default nastavení nejnovějšího WAMPu

 
Odpovědět
15.2.2017 20:49
Avatar
Vakos
Tvůrce
Avatar
Vakos:21.2.2017 18:38

Chci se zeptat. Jména latte šablonů mohou být pojmenovány jakkoli? Vše mám dělané podle článků a to nastává, problém nastává, když si chci přidat další latte šablonu, začne to ihned zlobit. Když si vytvořím novou šablonu, tak nastavím práva v config a pak už jej začínám používat, bohužel to vyhodí chybu.

V čem může být problém?

Odpovědět
21.2.2017 18:38
"Jediný způsob, jak dělat skvělou práci, je milovat to, co děláte. Pokud jste to ještě nenašli, hledejte dál. Ne...
Avatar
Jindřich Máca
Tvůrce
Avatar
Odpovídá na Vakos
Jindřich Máca:21.2.2017 19:45

Nějak nechápu, jak to myslíš. :( Jména Latte šablon mají nějaké konvence vůči akcím jednotlivých presenterů. Práva v konfiguračním souboru, pokud tedy myslíš statické ACL, vůbec nesouvisí se šablonami, ale právě s presentery. A vůbec, vhodné by bylo sem poslat tu konkrétní chybu, kterou Ti to píše. Takhle z toho nikdo nemůže být moc moudrý. :)

 
Odpovědět
21.2.2017 19:45
Avatar
Vakos
Tvůrce
Avatar
Odpovídá na Jindřich Máca
Vakos:21.2.2017 19:55

Chápu tedy že mají nějaké konvence, jak si tedy mohu vytvořit druhý soubor, kde například budu taktéž vypisovat články?

Odpovědět
21.2.2017 19:55
"Jediný způsob, jak dělat skvělou práci, je milovat to, co děláte. Pokud jste to ještě nenašli, hledejte dál. Ne...
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 10 zpráv z 60.