![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 115 Pomógł: 12 Dołączył: 11.01.2005 Skąd: Zduńska Wola Ostrzeżenie: (0%) ![]() ![]() |
Witam wszystkich,
mam następujący problem z Symfony 1.3. Piszę sobie jakiś tam backend i mam 3 moduły: User, Group i Permission (Group ze względu na ograniczenia propela ma inną nazwę w rzeczywistości, ale nie o to w sumie chodzi). Mój problem polega na tym, że gdy próbuję w Group lub Permission posortować wyniki zapytania (klikając na nagłówek kolumny, np. "Name", "Id") dostaję fatal errora: Kod Fatal error: Cannot redeclare class BasePermissionPeer in C:\wamp\www\kivi2\lib\model\om\BasePermissionPeer.php on line 14 Dodam, że w module user wszystko śmiga bardzo dobrze. Po wyczyszczeniu cache błąd znika, sortowanie nie (czyli sortuje tak jak chciałem, a co popsuł fatal error). Niestety po ponownej próbie sortowania error się powtarza, po odświeżeniu zresztą też. Wszystkie moduły mają zmienione pliki szablonów (indexSuccess.php). Oto plik schema: Kod propel: user: id: ~ name: { type: varchar, size: 32 } surname: { type: varchar, size: 32 } username: { type: varchar, size: 32, required: true, index: unique } password: { type: varchar, size: 40, required: true } salt: { type: varchar, size: 32, required: true } website: { type: varchar, size: 128, required: true } email: { type: varchar, size: 128, required: true } show_email: { type: boolean, required: true, default: 1 } is_active: { type: boolean, required: true, default: 1 } is_super_admin: { type: boolean, required: true, default: 0 } created_at: ~ last_login: { type: timestamp } permission: id: ~ name: { type: varchar, size: 64, required: true, index: unique } description: { type: longvarchar } ugroup: id: ~ name: { type: varchar, size: 64, required: true, index: unique } description: { type: longvarchar } user_permission: user_id: { type: integer, primaryKey: true, required: true, foreignTable: user, foreignReference: id, onDelete: cascade } permission_id: { type: integer, primaryKey: true, required: true, foreignTable: permission, foreignReference: id, onDelete: cascade } user_group: user_id: { type: integer, primaryKey: true, required: true, foreignTable: user, foreignReference: id, onDelete: cascade } group_id: { type: integer, primaryKey: true, required: true, foreignTable: ugroup, foreignReference: id, onDelete: cascade } group_permission: group_id: { type: integer, primaryKey: true, required: true, foreignTable: ugroup, foreignReference: id, onDelete: cascade } permission_id: { type: integer, primaryKey: true, required: true, foreignTable: permission, foreignReference: id, onDelete: cascade } user_remember_key: user_id: { type: integer, primaryKey: true, required: true, foreignTable: user, foreignReference: id, onDelete: cascade } remember_key: { type: varchar, size: 32, index: unique } ip_address: { type: varchar, size: 50, primaryKey: true } created_at: ~ Nie ukrywam, że schema mocno inspirowany sfGuardPlugin, ale to również nie o to chodzi;) Czy wie ktoś o co może chodzić? Proszę o pomoc. Pozdrawiam;) Ten post edytował Virti 1.11.2009, 11:23:01 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 49 Pomógł: 4 Dołączył: 16.07.2008 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
A jak wygląda ta 14 linijka w BasePermissionPeer?
-------------------- devFactor
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 115 Pomógł: 12 Dołączył: 11.01.2005 Skąd: Zduńska Wola Ostrzeżenie: (0%) ![]() ![]() |
Dodam, że błąd ten występuje również dla modułu "ugroup", jednak nie dotyczy modułu user... EDIT: metodą prób i błędów wytropiłem, że metodą powodującą ów błąd jest: z clasy autoPermissionActions (wygenerowane do cache), idąc dalej jest to:
Zawartość funkcji autoPermissionActions::isValudSortColumn:
Po podmienieniu tej f-cji na:
wszystko chodzi, jednak jest to obejście problemu, z którego szczerze mówiąc nie jestem zadowolony. Na koniec jeszcze zawartość BasePeer::getFieldnames:
Dodam, że dla działającego modułu User, funkcja autoUserActions::isValidSortColumn wygląda identycznie (zmienia się jedynie permission na user), jednak ona nie powoduje już błędów. Ten post edytował Virti 3.11.2009, 09:49:24 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 49 Pomógł: 4 Dołączył: 16.07.2008 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Hmm, wszystko wygląda ok w kodzie więc zgaduję, że gdzieś w projekcie istnieje drugi plik BasePermisssionPeer.php. Nie kopiowałeś czasem modelu do innego katalogu? I dla formalności się zapytam: czy robiłeś clear cache?
![]() -------------------- devFactor
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 115 Pomógł: 12 Dołączył: 11.01.2005 Skąd: Zduńska Wola Ostrzeżenie: (0%) ![]() ![]() |
Modelu nie kopiowałem, cc oczywiście było robione; Dla nowo utworzonych modułów problem również występuje (user jest jakiś wyjątkowy?
![]() Pozdrawiam ![]() Edit: BasePermissionPeer.php istnieje tylko jeden, wygląda na to, że zostaje dwukrotnie zaincludowany przez autoloader (poprzez wywołanie f-cji call_user_func_array() ![]() 1. Autoloader ładuje po raz drugi jeden plik? 2. Sytuacja nie dotyczy modułu User? Ten post edytował Virti 3.11.2009, 10:34:12 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 16:09 |