Ryszard J.

Ryszard J. Informatyk,
wdrożeniowiec
oprogramowania,
szkoleniowiec

Temat: Operacje na modelu za pomocą własnych formularzy

Witam,

do tej pory albo używałem modeli generowanych poleceniem:

doctrine:generate-admin

albo tworzyłem sobie własne moduły z formularzami i akcjami zawierającymi "zwykły kod SQL", który obrabiał dane w dwie strony - zapis zmiennych z formularzy i odczyt danych z bazy.

Chciałbym teraz to połączyć czyli ręcznie tworzonymi formularzami we własnych widokach zapisywać dane do istniejącego modelu / odczytywać dane z modelu

Używam Symfony 1.4 z Doctrine

Przeglądam książkę wyd Helion PHP 5 Symfony + materiały na http://www.symfony-project.org

Na razie wychodzi mi ze chcąc dodac dane z formularza do modelu to używam
w akcji przyjmujacej dane z formularza kodu:

$zapisz_form = new TabelaX();

$zapisz_form->setPoleTabeli($this->getRequestParameter('zmienna_z_form'));

$zapisz_form->save();

Gdzie:

TabelaX - to nazwa tabeli uzyta w modelu

setPoleTabeli - to nazwa pola w tabeli do ktorego zapisywane sa dane z pola formularza

$zapisz_form->save(); -zapisanie danych przez model


Pominalem cos/namieszalem czy tak to ma mniej wiecej wygladac?

I kolejne pytanie czy moge skorzystac z innego (recznie utworzonego modułu) a nie z modulu automatycznie utworzonego dla modelu - w tym recznie stworzonym module bede mial widok i akcje obrabiajaca dane.

Dziekuje za wskazowki
Ryszard J.

Ryszard J. Informatyk,
wdrożeniowiec
oprogramowania,
szkoleniowiec

Temat: Operacje na modelu za pomocą własnych formularzy

OK dodawanie danych do tabeli funkcjonuje bez problemu kod:

public function executeDodaj_zadanie()
{
//Przekazanie zmiennych z GET
$oRequest = $this->getRequest();
$this->metoda_post_get = $oRequest->getMethod();
$this->nazwa_zdarzenia = $this->getRequestParameter('nazwa_zdarzenia');
$this->id = $this->getRequestParameter('id');
$this->tekst_zdarzenia = $this->getRequestParameter('tekst_zdarzenia');
$zapisz_zdarzenie = new AlrContactTask();
$zapisz_zdarzenie->setIdContact($this->getRequestParameter('id'));
$zapisz_zdarzenie->setContactTaskTitle($this->getRequestParameter('nazwa_zdarzenia'));
$zapisz_zdarzenie->setContactTaskText($this->getRequestParameter('tekst_zdarzenia'));
$zapisz_zdarzenie->save();
$this->redirect('training/training_list');
}
Mam jednak problem z kasowaniem po ID nie działa kod:

$kasuj_zdarzenie = AlrContactTaskPeer::retrieveByPK(1);
$kasuj_zdarzenie->delete();
Adam W.

Adam W. senior php
developer, Symfony

Temat: Operacje na modelu za pomocą własnych formularzy

Ryszard Jaklewicz:
Mam jednak problem z kasowaniem po ID nie działa kod:

$kasuj_zdarzenie = AlrContactTaskPeer::retrieveByPK(1);
$kasuj_zdarzenie->delete();


w doctrine inaczej pobiera się obiekty


$user = Doctrine::getTable('User')->find(1);
$user->delete();
Alan Gabriel B.

Alan Gabriel B. Software Engineer,
IFX

Temat: Operacje na modelu za pomocą własnych formularzy

Adam W.:

$user = Doctrine::getTable('User')->find(1);
$user->delete();

Od pewnego czasu funkcjonuje proxy na każdym obiekcie tabeli np. ModelTable::getInstance().

Taki tip dla fanów podpowiadania składni :)

konto usunięte

Temat: Operacje na modelu za pomocą własnych formularzy

A czy aby np. eclipse podpowiadał to z komentarza w ModelTable nie trzeba usunąć słowa object?
Alan Gabriel Bem:
Adam W.:

$user = Doctrine::getTable('User')->find(1);
$user->delete();

Od pewnego czasu funkcjonuje proxy na każdym obiekcie tabeli np. ModelTable::getInstance().

Taki tip dla fanów podpowiadania składni :)
Alan Gabriel B.

Alan Gabriel B. Software Engineer,
IFX

Temat: Operacje na modelu za pomocą własnych formularzy

Faktycznie, sorry za wprowadzenie w błąd. Kumpel w pracy poprawia to skryptem regexpowym (tak myślę, że można z tego zrobić task).

Z ciekawości sprawdziłem w źródłach Doctrine i podmiana generatora za to odpowiedzialnego jest praktycznie niemożliwa :/Alan Gabriel Bem edytował(a) ten post dnia 06.02.11 o godzinie 10:44
Krzysztof N.

Krzysztof N. CEO. Aplikacje
internetowe i
mobilne. Symfony,
Zend.

Temat: Operacje na modelu za pomocą własnych formularzy

Paweł Mikołajczuk:
A czy aby np. eclipse podpowiadał to z komentarza w ModelTable nie trzeba usunąć słowa object?
Tak, trzeba usunąć. Inaczej nie podpowie.



Wyślij zaproszenie do