![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 1 640 Pomógł: 28 Dołączył: 13.02.2003 Skąd: Międzyrzecz/Poznań Ostrzeżenie: (0%) ![]() ![]() |
Opisujac relacje w temacie: Temat: CakePHP_relacje
Jak w np. w Article/view/43 lub Users/view/3 dodac komentarz, oraz czy w takim przypadku dobre bedzie zastosowanie formularza do komentowania w views/elements? -------------------- PHP Developer
"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 274 Pomógł: 54 Dołączył: 2.05.2006 Skąd: Nadarzyn Ostrzeżenie: (0%) ![]() ![]() |
nie rozumiem do konca co masz na mysli mowiac "jak dodac" . generalnie robisz tak:
w kontrolerze w akcji Kod $this->data = $this->Comment->create(array('model'=>'Article', 'model_id'=>$id)); to ci doda do this data nowy komentarz. a w widoku Kod <?php echo $form->create("Comment",array('url'=>'akacja/gdzie/zapisujesz')); echo $form->input("Comment.model", array('type'=>'hidden')); ?> echo $form->input("Comment.moel_id, array('type'=>'hidden')); ?> // pozostale standardowe pola formularza ?> tutaj w tym formularz jedyne co musisz zmienic to url bo standardowo cake wrzuci ci tam akcje ala REST wiec comments/add ( bo w kontrolerze nie ustawilismy id dla komentarza ). co do pytania o elements ... imho tak . formularz masz taki sam dla Article i User do tego mozesz korzystac z niego podczas edycji itp. wiec min 3 miejsca ... ja robie to tak ze w elements mam katalogi tak jak w widoku wiec np. robie sobie elements/comments/form.ctp ( ale to juz kwestia indywidualna ). Ten post edytował Rafal Filipek 12.01.2009, 20:45:01 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 640 Pomógł: 28 Dołączył: 13.02.2003 Skąd: Międzyrzecz/Poznań Ostrzeżenie: (0%) ![]() ![]() |
Zrobilem cos takiego: http://bin.cakephp.org/view/1722481208
W innych relacjach 'foreign_key' jest automatycznie dodawany, a w tej wyskakuje blad ze 'foreing_key' nie ma domyslnej wartosc? Czy musze w tym przypadku dodawac 'foreign_key' recznie? -------------------- PHP Developer
"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 274 Pomógł: 54 Dołączył: 2.05.2006 Skąd: Nadarzyn Ostrzeżenie: (0%) ![]() ![]() |
1)
Kod $this->Event->Comment->create(); na $this->Comment->create($this->data); // tworzysz komentarz z danymi z post'a 2) Kod if($this->Event->Comment->saveAll($this->data)) { na if($this->Comment->save($this->data)) { // wystarczy save 3)nie potrzebujesz redirect po zapisaniu komentarza ( chyba ze chodzi ci o unikniecie efektu f5 ). jak widzisz pokasowalem zapis relacji Event->Comment. Osobiscie tego nie stosuje bo jak zapisuje komentarz to nie widze potrzeby zeby robic to jeszcze przez model Event. Ja bym najzwyczajniej w formularzu dodal pole Kod $form->input('Comment.model_id', array('type'=>hidden')); i juz a co do tego automatycznego wypelniania to faktycznie z faktu iz jest to nazwa niestandardowa ( model_id ) moze go automatycznie nie wypelniac ( ale to nie na sto procent ). Ten post edytował Rafal Filipek 12.01.2009, 22:36:35 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 640 Pomógł: 28 Dołączył: 13.02.2003 Skąd: Międzyrzecz/Poznań Ostrzeżenie: (0%) ![]() ![]() |
ad 1 i 2: Undefined property: EventsController::$Comment
ad 3: Nie jest to chyba rozwiazanie zadawalajace, po to ustawilem w modelu Event:
Posilkowalem sie artykulem: http://mrphp.com.au/code/code-category/cak...y-model-cakephp ale tutaj takze ustawione jest 'foreignKey' w $hasMany, a klucz dodawany jest "recznie. Dlaczego nie dziala to automatycznie? Ten post edytował kicaj 13.01.2009, 01:32:54 -------------------- PHP Developer
"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 13:39 |