![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 27.01.2011 Ostrzeżenie: (0%) ![]() ![]() |
witam,
przerobilem mniej wiecej calego jobeeta i teraz chcialem na jego podstawie sam cos zrobic, na razie tylko troche zmniejac i jestem w 6 dniu przy Limitowaniu Rezultatow http://www.symfony-project.org/jobeet/1_4/Doctrine/en/06 i jak wpisze
to wywala mi blad Kod 500 | Internal Server Error | Doctrine_Query_Exception Cannot define NULL as part of query when defining 'limit'. stack trace * at () in SF_ROOT_DIR\lib\vendor\symfony\lib\plugins\sfDoctrinePlugin\lib\vendor\doctrine\Doctrine\Query\Abstract.php line 2047] 2044. { 2045. // We should prevent nullable query parts 2046. if ($queryPart === null) { 2047. throw new Doctrine_Query_Exception('Cannot define NULL as part of query when defining \'' . $queryPartName . '\'.'); 2048. } 2049. 2050. if ($append) { jesli z nawiasow wywale $max = 10 i wpisze w limit samo 10 bez zmiennej to strona sie wyswietla dobrze, ale potem juz sa problemy z tym limotowaniem... jak to mozna naprawic? jak robilem slowo w slowo z jobeetem to dzialalo, a jak pozmienialem tylko nazwy zmiennych to mam ten blad... pozdrawiam! |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
Czy kod który nam pokazałeś jest dokładnie taki sam jak ten, który się wysypuje? Sam piszesz, że zmieniałeś nazwy zmiennych, więc może i ta zmienna też powinna nazywać się inaczej.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 27.01.2011 Ostrzeżenie: (0%) ![]() ![]() |
kod z bledami jest dokladnie taki jak pokazuje. tamten skopiowalem z jobeeta. do tego kroku nie bylo zadnego problemu ze zmiennymi i dzialalo ok, a przy tym wywala mi ten blad
Cytat Cannot define NULL as part of query when defining 'limit' cos jest z tym limitem zle, bo jak usune go z funkcji i zamienie tak: Cytat public function getActiveJobs() { $q = Doctrine_Query::create() ->from('JobeetJob j') ->where('j.category_id = ?', $this->getId()) ->limit(10); return Doctrine_Core::getTable('JobeetJob')->getActiveJobs($q); } to dziala dobrze, nawet limituje, ale potem jak juz robie kategorie to w kategoriach w ogole nie ma limitu... |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 237 Pomógł: 17 Dołączył: 1.11.2007 Skąd: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
a jak wywołujesz funkcję getActiveJobs() może jako parametr wprowadzasz zmienną o wartości null i wtedy ci się pieprzy ?
-------------------- Wyszukiwarka noclegów w Polsce i zagranicą.
Najlepszy katalog turystyczny wspomagający pozycjonowanie i promocje stron. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 27.01.2011 Ostrzeżenie: (0%) ![]() ![]() |
nie wiem co jest, jak robie wedlug jobeeta to dziala bez problemu, a jak zmieniam zmienne to jest problem...
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 200 Pomógł: 38 Dołączył: 1.12.2010 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
zobacz co wykonujesz w return! Wywołujesz rekurencyjnie tę samą funkcję którą własnie wykonujesz! Zatem w drugim wywołaniu podajesz jej za parametr obiekt Doctrine_query przekazany przy pomocy zmiennej $q. Funkcja limit nie rozumie co to obiekt i sobie go nulluje i potem wywala błąd. W returnie powinieneś mieć:
Przyjrzyj się dokładnie temu co jest w lekcji 6. -------------------- Warsztat: NetBeans 7.2 Beta, PHP, MySQL, PostgreSQL, Symfony (<=1.4), Diem, Java, Sieci neuronowe
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 20.11.2011 Ostrzeżenie: (0%) ![]() ![]() |
zobacz co wykonujesz w return! Wywołujesz rekurencyjnie tę samą funkcję którą własnie wykonujesz! Zatem w drugim wywołaniu podajesz jej za parametr obiekt Doctrine_query przekazany przy pomocy zmiennej $q. Funkcja limit nie rozumie co to obiekt i sobie go nulluje i potem wywala błąd. W returnie powinieneś mieć:
Przyjrzyj się dokładnie temu co jest w lekcji 6. To nie prawda, w returnie powinno być to, co jest. Tylko funkcja powinna iść do innej klasy. Sprawdź, czy nie pokiełbasiłeś. Funkcja o sygnaturce:
musi iść do JobeetCategoryTable, a funkcja:
musi iść do JobeetCategory. Mogłeś też źle wpisać nazwę zmiennej:
w pliku app.yml. Ta zmienna ma się nazywać max_jobs_on_homepage a nie app_max_jobs_on_homepage Za to, żeby ją pobrać musimy użyć:
Jeśli to o tę nazwę chodzi, to pamiętaj, że jak zmienisz nazwę w pliku konfiguracyjnym yml, a masz włączone cachowanie, to powinieneś opróżnić cache, bo inaczej Symfony nie zauważy zmian. Powodzenia:) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 03:45 |