Főoldal   Súgó Bejelentkezés Regisztráció  
Üdvözlünk, Vendég. Kérlek jelentkezz be vagy regisztrálj.

Jelentkezz be a felhasználóneveddel, jelszavaddal és add meg a munkamenet hosszát
1 évet fizetsz kettőt kapsz a CakePHP tárhely programban!
Silver csomag pl.: 1000MB tárhely, MySQL vagy PostgreSQL.
.hu domain címmel - 12.900 Ft + Áfa / 2év
Hírek: Exkluzív bejelentés CSAK CakePHP.hu fórumlátogatóknak!  Általános blabla...
Oldalak: [1]   Le
Nyomtatás
Téma: Paginator probléma  (Megtekintve 134 alkalommal)
« Dátum: 2011. December 03. - 18:38:43 »
kisspepe Nem elérhető
Kölyök tag

Profil megtekintése E-mail
**
Hozzászólások: 88



Sziasztok!

Problémába ütköztem, és nem tudom mi lehet az oka, mert több helyen is ugyan ez a kód más változókkal működik.

admin_index metódusban létrehozok egy paginatort, melyet aztán a nézetben táblázatban jelenítek meg. Ha megnyitom az oldalt, teleírja hibákkal, a paginator.php fájlra hivatkozva.

A metódus:
Kód:
function admin_index() {
$data = $this->paginate('Product');
$this->set('data', $data);
}

Miután $data-ba lekértem az adatokat paginate függvénnyel, kiírattam a $data tartalmát debug-al. Üres tömböt kaptam és egy hibaüzenetet:

Idézet
Warning (512): Controller::paginate() - can't find model Product in controller ProductsController [CORE\cake\libs\controller\controller.php, line 1102]

Ha jól értem a hibaüzenetet, nem találja a modellt. Nem értem miért.

A tábla neve products, a modell neve product.php, a vezérlő neve products_controller.php. Szóval minden megvan a megfelelő elnevezéssel.

Nagyon fontos lenne ezt a hibát még ma megoldani, de ötletem sincs mi a gond, mert csináltam már kb 5 ugyan ilyen index oldalt más táblákhoz, és ott nem volt ilyen probléma.
Naplózva
« Válasz #1 Dátum: 2011. December 03. - 19:52:22 »
sipiatti Nem elérhető
Újonc

Profil megtekintése E-mail
*
Hozzászólások: 43



pastebin.com-ra tedd fel a modelt a kontrollert és a viewt, csak valami szintaxis gond lehet, valahol, amit nem veszel észre. Programozói vakság, van ilyen. Egy friss szem lehet rögtön kiszúrja.
Naplózva
« Válasz #2 Dátum: 2011. December 03. - 20:00:54 »
kisspepe Nem elérhető
Kölyök tag

Profil megtekintése E-mail
**
Hozzászólások: 88



Feltettem.

Modell: http://pastebin.com/6jNiV3MG
Controller: http://pastebin.com/9EGMNuXA
View: http://pastebin.com/VL9UeKvp
Adatbázis tábla: http://pastebin.com/6xU9TnLn
Naplózva
« Válasz #3 Dátum: 2011. December 03. - 20:28:42 »
sipiatti Nem elérhető
Újonc

Profil megtekintése E-mail
*
Hozzászólások: 43



kimaradt a $uses tömbből a 'Product'

ha véletlen akkor örülünk, ha nem akkor itt van egy fontos mondat:
http://book.cakephp.org/view/961/components-helpers-and-uses
Idézet
when allowing a controller to access additional models through the $uses variable, the name of the current controller's model must also be included.

Egyébként miért akarod ezeket a modelleket közvetlenül elérhetővé tenni a kontrollerben? Nincs kapcsolat ezek közt a modellek között? Ha nincs akkor megértem, néha kell más is, de a $uses-be akkor érdemes betenni, ha több function is használja a kontrollerben őket. Ha nem, akkor pl. itt ebben az index függvényben fölöslegesen töltődnek be ezek a modellek, fölöslegesen lassítják az alkalmazást.

Ha meg van kapcsolat a modellek között, akkor szintén fölösleges a fő modellek szintjén és a rekurzió szintjén is létezniük, így duplán töltődnek be és épülnek fel a dolgok.
Naplózva
« Válasz #4 Dátum: 2011. December 03. - 20:41:38 »
kisspepe Nem elérhető
Kölyök tag

Profil megtekintése E-mail
**
Hozzászólások: 88



Igen tényleg ez volt a gond. Viszont ezt akkor most nem értem.

A $uses-be azért tettem bele a 'ProductFeatureName', 'Category', 'Picture' modelleket, mert előre tervezve fogok lekérdezni ezekből a táblákból a Product controllerben. Kapcsolat az van közöttük, de úgy tudtam, hogy közvetlenül csak így tudok más vezérlőben lekérdezést csinálni másik táblára.

Azt viszont nem értem, hogy a Product-ot miért kell beletenni ebbe a tömbbe. Másik kontrollerbe is használtam ugyan ezt a felépítést és ott nem kellett. A másik a Product controller-nek konvenciók alapján tudnia kellene hogy a Product a modellje.
Naplózva
« Válasz #5 Dátum: 2011. December 03. - 20:51:48 »
sipiatti Nem elérhető
Újonc

Profil megtekintése E-mail
*
Hozzászólások: 43



lekérdezés kapcsolt modellből:
$this->Product->Category->find('all');

azért kell, mert pont hogy felülírod az automatikusan feltöltött $uses változót, amiben alapból a Product van. Ahol úgy látod, hogy nem kellett a $uses-ba a saját modell, ott valami nem kerek.
Naplózva
« Válasz #6 Dátum: 2011. December 03. - 20:59:09 »
kisspepe Nem elérhető
Kölyök tag

Profil megtekintése E-mail
**
Hozzászólások: 88



Ok, köszönöm a magyarázatot, akkor majd átnézem az eddigi kódjaimat és ezeket javítom.
Naplózva
Oldalak: [1]   Fel
Nyomtatás
Ugrás:  

2007 CakePHP Magyarország Fóruma
Powered by SMF 1.1.4 | SMF © 2006, Simple Machines LLC
Magyar fordítás: SMF Magyarország
| Üzemelteti / Hosting: Elite Media     -     Támogatóink: Loovers Szexshop | És a HHO generátor