Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Symfony problem z ORM oraz tworzeniem obiektu.
rsobczuk
post 17.01.2008, 16:27:11
Post #1





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 20.10.2002
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Witam,
jakiś czas temu zacząłem zabawę z frameworkiem Symfony.
Zacząłem zabawę ORM - geenralnie zabawą z bazą danych.
Stworzyłem sobie tabelę w bazie danych, utworzyłem dla tej tabeli plik schema.yml dla struktury (wszystko zgodnie jak w dokumentacji w rozdziale 8.
Mój plik wygląda tak:

propel:
user:
_attributes: { phpName: User }
user_id:
firstname: varchar(50)
lastname: varchar(50)

Wszystko ładnie mi działa - dane dodają się do bazy danych za pomocą propela. Poniższy kod umieściłem w jednej z akcji w moim module:
$pConnection = Propel::getConnection();
$pQuery = "INSERT INTO user(firstname, lastname) VALUES ('Rafal', 'Sobczuk')";
$pStatement = $pConnection->prepareStatement($pQuery);
$pResultset = $pStatement->executeQuery();

Do tej pory wszystko działa ładnie.

W dokumentacji napisane jest, że oprócz standardowych zapytań mogę użyć klasy User (w moim przypadku, bo taki nadałem atrybut tej tabeli w pliku schema.yml.
Po wywołaniu konstrutora klasy User w tej samej akcji którą opisałem kilka linijek wyżej dostaję komunikat, że:

Fatal error: Class 'User' not found in /var/www/html/www.sobczuk.eu/apps/main/modules/page/actions/actions.class.php on line 26

W którym miejscu powinienem wywołać konstruktor klasy User? A może czegoś nie za' include'owałem?
W dokumentacji dość niejasno to jest napisane.
Z góry dziękuję za wszelką pomoc.
Pozdrawiam
Rafał Sobczuk
Go to the top of the page
+Quote Post
Sedziwoj
post 17.01.2008, 16:56:48
Post #2





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Niewiele korzystasz z ORM, raczej z abstrakcji bazy danych, skoro nie używasz obiektów mapujących....
Ale z Symfony nie pomogę, korzystam z Propela ale nie w tym fw. (z dokumentacji wynika, że powinno być dostępne po poprawnym zdefiniowaniu... ale nie wnikam)


--------------------
Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami.
Go to the top of the page
+Quote Post
destroyerr
post 17.01.2008, 16:58:49
Post #3





Grupa: Zarejestrowani
Postów: 879
Pomógł: 189
Dołączył: 14.06.2006
Skąd: Bytom

Ostrzeżenie: (0%)
-----


Napisz czy po zbudowaniu modelu wyczyściłeś cache. Jeśli tak to sprawdź czy w pliku: /cache/<nazwa aplikacji>/<nazwa środowiska>/config/config_autoload.yml.php masz dodaną klase User z poprawną ścieżką.
Go to the top of the page
+Quote Post
rsobczuk
post 17.01.2008, 17:05:10
Post #4





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 20.10.2002
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Cytat(destroyerr @ 17.01.2008, 17:58:49 ) *
Napisz czy po zbudowaniu modelu wyczyściłeś cache. Jeśli tak to sprawdź czy w pliku: /cache/<nazwa aplikacji>/<nazwa środowiska>/config/config_autoload.yml.php masz dodaną klase User z poprawną ścieżką.


Wystarczy wykasować katalog cache?

Ten post edytował rsobczuk 17.01.2008, 17:05:53
Go to the top of the page
+Quote Post
phpion
post 17.01.2008, 17:07:47
Post #5





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Można ręcznie usunąć zawartość katalogu cache ale wygodniej jest wykonać polecenie:
Kod
symfony cc

które zrobi to za Ciebie.
Go to the top of the page
+Quote Post
rsobczuk
post 20.01.2008, 11:33:22
Post #6





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 20.10.2002
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Szacuneczek.
Dzięki za pomoc dla wszystkich...
Usunięcie cacheu pomogło.
Pozdrawiam
Rafał

Nie będę tworzył nowego wątku. Moje pytanie też jest odnośnie Symfony, ale tym razem chcę zrobić coś takiego:
Na głównym templejcie strony (plik: <prjekt>/apps/<aplikacja>/templates/layout.php jest taki fragment kodu:<?php echo $sf_data->getRaw('sf_content') ?>
Oznacza to, że w tym miejscu będzie wyświetlony kod wygenerowany przez poszczególne moduły (w zależności od akcji jaka będzie uruchomiona).

Chciał bym zawrzeć w tym samym głównym templejcie inny kontekst (np flagi z możliwością wyboru języka aplikacji).
Czy ktoś pomoże mi jak coś takiego wygenerować, żeby nie wklejać do tego pliku oddzielnie linków z obrazkami i linkami do akcji, gdzie mogę zmienić język, tylko żeby był to wklejony obiekt z wywołaną jakąś metodą, gdzie HTML został stworzony w zupełnie w innym pliku.
Mam nadzieję, że wysłowiłem się jasno.
Dzięki
Pozdrawiam
Rafał
Go to the top of the page
+Quote Post
phpion
post 20.01.2008, 11:54:00
Post #7





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Ja przy korzystaniu z wersji językowych w Symfony dodaję do głównego szablonu odpowiednie linki ręcznie + korzystam z odpowiedniego helpera do generowania tychże linków. Jeśli jednak chcesz tą operację zrzucić na jakiś obiekt to może po prostu go utwórz w szablonie i wywołaj odpowiednią metodę.
Go to the top of the page
+Quote Post
rsobczuk
post 20.01.2008, 20:59:49
Post #8





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 20.10.2002
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Też o tym myślałem, ale fajniejsze było by, żeby stworzyć klasę bardziej na tym samym poziomie co tworzona jest strona przy wywoływaniu akcji aplikacji...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 20.07.2025 - 11:28