Nepravidelný PDOException No reference found for…

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
tolljump
Člen | 47
+
0
-

Dobry vecer.

Uz dobre 2 tyzdne ma trapi neskutocna chyba, s ktorou si neviem vobec dat rady a uz som z toho zufaly. Jednoducho v nepravidelnych intervaloch, neviem z akeho dovodu sa dostavam k chybe „No reference found for…“.

Dam konkretny priklad, kde sa tato chyba vyskytuje. Cize je to No reference found for $courses->icon_interactive. Cize premennu $courses vytvaram zo selectu

$this->db->table('courses')->where(array('id'=>$id))->fetch();

, v ktorom si vyberam z jednej tabulky udaje o danom kurze. Lenze k tymto udajom, cize k tomuto polu $courses potrebujem dostat udaje z dalsich 3 tabuliek (ceny,ikonky,kategorie). Robim to nasledovnym sposobom:

//vyberiem si udaje o ikonkach z DB
$icons = $this->db->table('courses_icons')->where('courses_id',$id)->fetch();

//a priradim ich do poli v $courses
		$course->icon_interactive = $icons->icon_interactive;
		$course->icon_quiz = $icons->icon_quiz;
		$course->icon_music = $icons->icon_music;
		$course->icon_video = $icons->icon_video;
		$course->icon_files = $icons->icon_files;
		$course->icon_tutor = $icons->icon_tutor;
		$course->icon_case_study = $icons->icon_case_study;
		$course->icon_certificate = $icons->icon_certificate;

$categories = $this->db->table('courses_in_categories')->where('courses_id',$id);

foreach($categories as $category){
				$cat[] = $category['category_id'];
			}
			$course->categories = $cat;

//pod. sposobom este ceny......... nepodstatne

Tymto sposobom potrebujem pouzivat v sablonach $courses->icon_interactive, $course->icon_tutor, ......
Kde je chyba? V com moze byt problem?

Dakujem pekne za rychle a funkcne riesenie

jiri.pudil
Nette Blogger | 1032
+
0
-

Jelikož očividně jako databázovou vrstvu používáš Nette\Database, proč pak nepoužíváš taky její API pro relace? To by tě nejspíš podobných problémů zbavilo. Viz hrachova přednáška (cca od 22:30)

tolljump
Člen | 47
+
0
-

Dakujem za radu, idem vyskusat co mi to pomoze :-)

enumag
Člen | 2118
+
0
-

Jakou verzi Nette používáš? Tyhle chyby se čas od času objeví, takže je možné, že v masteru je to už delší dobu opravené.

hrach
Člen | 1838
+
0
-

a zrovna po vikendu jsou fixy, kdy jeden neco s timto mohl mit spolecneho…

tolljump
Člen | 47
+
0
-

Je to mozne, vcera som aktualizoval cele Nette, takze mam tam najnovsiu stable verziu. No zacal som pouzivat related() a zatial sa mi povodny error este neukazal :-)

hrach
Člen | 1838
+
0
-

Hm, stable verze ma nektere bugy taky … Nepouzivat stable u nette\database je vrazda uplne…