![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 1 Dołączył: 12.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Proszę o pomoc: Po skonfigurowaniu parametrów połączenia do bazy danych w pliku $SF_ROOT/config/database.yml i odpowiednim ustawieniu pliku schematu danych w $SF_ROOT/apps/frontend/conf/schema.yml nie mogę wygenerować odpowiednich klas do obsługi bazy danych za pomocą polecenia: symfony propel-build-model Zawsze, czy dane konfiguracyjne są prawidłowe czy nie, czy nawet jak w ogóle ich nie ma to po podaniu tego polecenia dostaje output:
CODE >> schema converting "/home2/Loko/www/lok...cs/sf/config/schema.yml" to XML >> schema putting /home2/Loko/www/loko.ro.../sf/config/generated-schema.xml Warning: ini_set(): Option default_charset cannot be changed after headers have been sent (output started at /usr/share/php/symfony/vendor/pake/pakeFunction.php:366) in /usr/share/php/symfony/vendor/phing/Phing.php on line 1103 Fatal error: Declaration of UnixFileSystem::getBooleanAttributes() must be compatible with that of FileSystem::getBooleanAttributes() in /usr/share/php/symfony/vendor/phing/system/io/UnixFileSystem.php on line 266 O co w tym chodzi? jak się wreszcie podłączyć do tej bazy? Plik generated-schema.xml wygląda tak: CODE <?xml version="1.0" encoding="UTF-8"?>
<database name=""> </database> Ten post edytował mike 23.07.2008, 13:22:35 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
A pokaż plik schema.yml, podejrzewam, że masz błedy.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 1 Dołączył: 12.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
propel:
article: _attributes: { phpName: Article } id: title: varchar(25) content: text created_at: comment: _attributes: { phpName: Comment } id: article_id: author: varchar(255) content: text created_at: |
|
|
![]()
Post
#4
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Ty pisałeś tą schemę? Zrób sobie najlepiej bazę danych a później wygeneruj plik schema.yml na podstawie bazy danych.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 1 Dołączył: 12.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Jak to zrobić?
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 304 Pomógł: 51 Dołączył: 4.02.2005 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
a nie powinno być:
? -------------------- |
|
|
![]()
Post
#7
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Eeee, no!
Takie pierdoły to w dokumentacji piszą. Warto poczytać. Kod symfony propel:build-schema
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 1 Dołączył: 12.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
CODE symfony propel-build-schema Fatal error: Declaration of UnixFileSystem::getBooleanAttributes() must be compatible with that of FileSystem::getBooleanAttributes() in /usr/share/php/symfony/vendor/phing/system/io/UnixFileSystem.php on line 266 Z dwukropkiem zamiast kreski nie działa w ogóle - nieznane polecenie. zamiana w configu na content: longvarchar nic nie zmienia. Ten post edytował Lk_hc 23.07.2008, 14:17:10 |
|
|
![]()
Post
#9
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Jaką masz wersję PHP bo symfony masz 1.0.
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 1 Dołączył: 12.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
No i chyba znaleźliśmy problem:
CODE php -v
PHP 6.0.0-dev (cli) (built: Jun 13 2007 21:52:48) Copyright © 1997-2007 The PHP Group Zend Engine v3.0.0-dev, Copyright © 1998-2007 Zend Technologies |
|
|
![]()
Post
#11
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Nom.
W klasie UnixFileSystem funkcja getBooleanAttributes wygląda tak: a w klasie nadrzędnej dla niej wygląda tak:
PHP 6.0.0 na to nie pozwala. |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 1 Dołączył: 12.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Udało się zbudować model!
![]() Jeszcze mam pytanie pokrewne: Mam model, wszystkie pliki klas i xml. Ale za cholere nie mogę wyciągnąć danych z bazy danych. Jestem prawie pewny że te pare linijek kodu co pisze jest ok (według dokumentacji online). Więc moje pytanie brzmi jak sprawdzić czy Smyfony/Creole/Propel łączy się z DB. Ze specyfiki generowania modelu wynika że podanie złego hasła czy innych danych w database.yml nie wyrzuca błędów bo klasy generowane są na podstawie schema.xml. Rozpisałem się. Więc macie pomysł jak to sprawdzić? Ten post edytował Lk_hc 24.07.2008, 12:53:55 |
|
|
![]()
Post
#13
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Odpalaj aplikację w trybie dev (np. poprzez frontend_dev.php zamiast index.php), a będziesz wiedział w czym problem. Nie zapomnij o przyjacielu jakim jest "symfony cc"
![]() |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 1 Dołączył: 12.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Cały czas pracuje na frontend_dev.php. Nie wyskakuje błąd tylko zmienna która miała zawierać wartość z bazy jest pusta. Sprawdziłem issestem. Z Symfony cc dość dobrze się znamy ;] Przy czym jeśli w w klasie modelu (załóżmy za tutorialem Article.php) zrobie funkcję test zwracającą na sztywno ustawiony string to pięknie ten string sobie wędruje przez kontroler do widoku więc z przepływem zmiennych nie ma problemu. Chodzi o łączność z bazą.
|
|
|
![]()
Post
#15
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli podałbyś niepoprawne dane do bazy danych to modele poinformują Cie o tym wyjątkiem kiedy zechcesz zapytać bazę o coś.
Podaj kod, zobaczymy co jest nie tak. |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 1 Dołączył: 12.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Plik akcji wywołujący obiekt modelu:
Plik klasy modelu Article.php
I nic. Próbowałem już przenoszenia pewnych wywołań do pliku modelu i odwrotnie, podawania jako parametru id do getTitle() i nic. Na złych danych połączeniowych w database.yml nie wywala błędu w trybie dev (wcześniej tak było afair) symfony cc i rm -rf cache/frontend nic nie zmieniają. Na dobrych danych konfiguracyjnych zmienna, która powinna zawierać tytuł jest pusta. W widoku wiadomo jest echo $art_title. Ten post edytował Lk_hc 24.07.2008, 14:18:27 |
|
|
![]()
Post
#17
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Załamka. Obawiam się, że masz myle wyobrażenie o działaniu tego kodu.
A działa tak: 1. Tworzysz nowy obiekt klasy Article, czyli tworzysz nowy artykuł. Nowy to znaczy niewypełniony. Bez id, bez tytułu i co tam jeszcze masz. 2. Pobierasz tytuł utworzonego przed chwilą obiektu. Jakiego tytułu się spodziewasz w rezultacie? ![]() |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 1 Dołączył: 12.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Zaraz, zaraz, a Article.php to nie jest klasa reprezentująca istniejący w bazie danych rekord, który zawiera artykuły, ich tytuły etc... ? Przecież jest getTitle a nie setTitle ? Tylko właśnie nęka mnie na jakiej podstawie wybiera ten artykuł.
Cholera czyli muszę się zainteresować ArticlePeer.php ? Ten post edytował Lk_hc 24.07.2008, 14:26:31 |
|
|
![]()
Post
#19
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Article to jest obiekt reprezentujący jeden wiersz a tabeli article.
Możesz taki obiekt pobrać z bazy: lub stworzyć nowy i zapisać go do bazy:
Odnoszę wrażenie, że korzystasz z czegoś czego kompletnie nie rozumiesz. Wróć do dokumentacji Propela i symfony i zacznij od nowa. |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 1 Dołączył: 12.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Odnosisz takie wrażenie, bo, przyznaje trochę z pośpiechem przeleciałem ten rozdział. Po prostu w totalną zmyłe mnie wprowadziło to get
SUKCES - wyciągnąłem tytuł z bazy, to chyba znaczy że nie tak "kompletnie nie rozumiem", no wiesz ;] tylko ten peer poprostu no i kwestia pomyłki metody statycznej z obiektem, plama. fuckt. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 07:54 |