Problém s úpravou produktu – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Problém s úpravou produktu – PHP – Fórum – Programujte.comProblém s úpravou produktu – PHP – Fórum – Programujte.com

 

jAkErCZ0
Stálý člen
23. 11. 2017   #1
-
0
-

Čau kluci,

tak jsem tu znovu ale tentokrát z něčím speciálním a to že nevím proč mi již nejdou upravovat produkty.

Jakmile chci upravit produkt který máme v e-shopu tak mi to hodí error který se týká kategorii a proto se ptám vás zda-li nevíte jak jej opravit.

Chyba->

Připojen obrázek.

Kód->

      /**
	 * Správa produktu.
	 * @param string $url URL adresa produktu, který editujeme; pokud není zadána, přidá se produktu jako nový
	 */
	public function actionManage($url)
	{
		if ($url && ($product = $this->productManager->getProduct($url))) {
			$productArray = $product->toArray(); // IRow je read-only, pro manipulaci s ním ho musíme převést na pole.
			$productArray['categories'] = $this->categoryManager->getProductCategories($product->product_id);
			$this['productForm']->setDefaults($productArray);
			$this['productImages']->setProduct($product); // Nastaví již existující produkt do komponenty.
		}
	}

Chyba se týká přímo ---> $this['productForm']->setDefaults($productArray);

Nevíte kde je chyba? 

Díky

Tak jsem zjistil že tento error se ukazuje u kategorií které mají parent_category_id na NULL jsou to kategorie které jsou hlavní a proto nemusí dědit z žádných jiných ale to tam dělá tu paseku...

Nahlásit jako SPAM
IP: 94.112.128.–
Kit+15
Guru
23. 11. 2017   #2
-
0
-

#1 jAkErCZ
Co je to za konstrukci? To neznám: 

$this['productForm']->setDefaults($productArray);

To vypadá, jako kdybys chtěl používat nějaké pole $this.

Nahlásit jako SPAM
IP: 194.228.68.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
jAkErCZ0
Stálý člen
23. 11. 2017   #3
-
0
-

#2 Kit

Takto jsem to jsem to měl udělané... Nevíš jak to opravit? Jako tak nějak vím asi kde je problém ale vůbec nevím jak to opravit

Nahlásit jako SPAM
IP: 94.112.128.–
Kit+15
Guru
23. 11. 2017   #4
-
0
-

#3 jAkErCZ
To také netuším, neboť nevidím kontext. Kdomě toho je v tom kódu jedna prasárna vedle druhé.

Nahlásit jako SPAM
IP: 194.228.68.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
jAkErCZ0
Stálý člen
23. 11. 2017   #5
-
0
-

#4 Kit

CO potřebuješ vidět abys věděl více?

Nahlásit jako SPAM
IP: 94.112.128.–
peter
~ Anonymní uživatel
4016 příspěvků
24. 11. 2017   #6
-
0
-

   

class xxx
{
var $zzz;
function yyy()
   {
   $this->zzz = 123;
   }
}

$AAA = new xxx;
echo $AAA->zzz;
$AAA->yyy();
echo $AAA->zzz;

This je odkaz na class. Pod classem asi zadne pole nemas. Takze ten radek a radek pod nim se jevi jako nesmysl.  

$this['productForm']->setDefaults($productArray); // nemelo tam byt spis neco jako
$this->product['productForm']->setDefaults($productArray);
$this->productForm->setDefaults($productArray);
$product['productForm']->setDefaults($productArray);

Je treba videt vic, jak vypada definice promennych class (var $zzz;), pripadne funkce, ktere do toho zasahuji, mozna  vice radku s 'productForm'. Takzhle od oka vubec nemam predstavu, ze by this slo takhle pouzit. This neni array, je to odkaz na objekt.
 

<?php
$this->zzz // pristup zevnitr do zzz  (asi podobne i productForm)
$AAA->zzz // pristup zvenci do zzz
$AA::zzz // pristup zvenci do definice class
?>
Nahlásit jako SPAM
IP: 2001:718:2601:258:516b:9d...–
jAkErCZ0
Stálý člen
24. 11. 2017   #7
-
0
-

#6 peter

Dobře jak dojdu domu hodím sem to co jsi chtěl aby se to opravili jelikož nemohu ted upravovat produkty... 

Nahlásit jako SPAM
IP: 37.188.144.–
pecan9870
Věrný člen
24. 11. 2017   #8
-
0
-

Je to Nette, v $this je presenter a dá se používat takhle i jako pole.

Ta chyba znamená to, že máš u produktu uložené id kategorie, které již neexistuje a kvůli tomu ti zakřičí validace ze selectu, jelikož se mu snažíš nastavit hodnotu, kterou nezná.

Nahlásit jako SPAM
IP: 81.200.63.–
jAkErCZ0
Stálý člen
24. 11. 2017   #9
-
0
-

#8 pecan987

Už vím kde je problém :/ a to je v tom že mám Hlavní kategorie které mají své ID ale nemají parent_category_id a ty mají na NULL a jakmile sem produktu odstranil v databázi product_category vazbu na hlavní kategorii tak již upravovat jde... nedá se to nějak fixnout než abych všem produktům mazal vazby na hlavní kategorie které jsou

Připojen obrázek.

Takže tady jsou hlavní kategorie 

Nahlásit jako SPAM
IP: 94.112.128.–
peter
~ Anonymní uživatel
4016 příspěvků
27. 11. 2017   #10
-
0
-

Obavam se, ze ti opet nikdo moc nerozumi. Ale z toho si nic nedelej, ono se to nejspis tezko popisuje.
Pecan ti prelozil jen tu hlasku, co vypsalo nette.
Hodnota 126 jeni v kategoriich a vypsane pole [1, 127, ...] se vsemi kategoriemi.

Upravujes produkt, zmenis mu kategorii, ktera na takovou, ktera zatim neexistuje nebo jsi ji prave zrusil.
- Kdyz kategoriii mazes, tak nejdriv oprav kategorie u vsech produktu, ktere ji maji. Nebo kompletne odstranit i vsechny produkty. A az pak smazat kategorii.
- Nebo, kdyz kategorie pridavas, tak nejdriv pridat kategorie a az pak produkty.
Tusim, ze innoDb ma nejake prikazy, aby si takove akce hlidala a bud smazala i vsechny takove produkty nebo akci nepovolila, dokud je v kategorii alespon 1 produkt.

Nahlásit jako SPAM
IP: 2001:718:2601:258:ac59:c1...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 22 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý