Zadejte hledaný výraz...

Při použití jednoho modelu dochází paměť

Bacon
verified
rating uzivatele
(2 hodnocení)
9. 9. 2012 05:59:58
Zdravím,
tak jen v rychlosti, mám 3 tabulky (controllery, modely):
  • Artists: hasMany Song
  • Songs: belongsTo Artist, hasMany File
  • Files: belongsTo Song
Pokud pracuji s Artists nebo Songs, vše je OK. Ale pokud chci získat Files, dostanu velmi rychle tuto chybu "Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 32 bytes) in /home/domains/mojekaraoke.eu/public_html/lib/Cake/Model/Datasource/DboSource.php on line 461"
Pokud tahám informace přes jiný model (např. přes Songs), díky relacím dostanu i Files, ale pokud chci dostat Files samostatně, skončím na té chybě :(
Pokud chci dostat jen jediný záznam podle ID, funguje to:
$this->File->id = $id;
$Files = $this->File->read();
$this->set( 'Files', $Files );
print_r( $Files );
Ale toto chcípne:
$Files = $this->File->find( 'all' );
Zkoušel jsem navýšit memory_limit až na 1G a stejně nic... Zajímavé je, že se paměť zaplní velmi rychle, v podstatě okamžitě po odeslání požadavku, tak rychle se mi stránky z funkčních controllerů nenačítají...
---------- Příspěvek doplněn 09.09.2012 v 06:16 ----------
Doplněno: Při použití paginate to funguje, takže problém je zřejmě v množství dat.
9. 9. 2012 05:59:58
https://webtrh.cz/diskuse/pri-pouziti-jednoho-modelu-dochazi-pamet#reply806174
mujfibi
verified
rating uzivatele
(15 hodnocení)
9. 9. 2012 08:23:06
Jo, PHP má problém s tím, že neumí uvolňovat paměť, včera jsem to taky řešil.
9. 9. 2012 08:23:06
https://webtrh.cz/diskuse/pri-pouziti-jednoho-modelu-dochazi-pamet#reply806173
Bacon
verified
rating uzivatele
(2 hodnocení)
9. 9. 2012 08:26:16
Nakonec to tahám přes relaci Song hasMany File a následně přes Set::extract přiřadím File do $File. Sice trochu krkolomné, na druhou stranu, provádím jen jeden SQL dotaz místo dvou, takže šetřím čas a databázi. Ale nejde mi do hlavy, proč to nejde samostatně přes $this->Song->File->read(); nebo jak to je, teď nevím z hlavy. A dokonce ani přes find, kde je jako podmínka File.song_id = $this->Song->id;
9. 9. 2012 08:26:16
https://webtrh.cz/diskuse/pri-pouziti-jednoho-modelu-dochazi-pamet#reply806172
Pro odpověď se přihlašte.
Přihlásit