Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony]$this->getRoute()->getObject()
Forum PHP.pl > Forum > PHP > Frameworki
kamil.deb
Witam

Chciałbym żeby ktoś mi wyjaśnił powyższą formułke, odnosi sie ona do modelu z tego co zrozumiałem z Jobeet'a, najczęściej używa sie ją do odwołania do elementów tablicy typu:

  1. <?php
  2. $this->job = $this->getRoute()->getObject();
  3.  
  4.    // fetch jobs already stored in the job history
  5.    $jobs = $this->getUser()->getAttribute('job_history', array());
  6.  
  7.    // add the current job at the beginning of the array
  8.    array_unshift($jobs, $this->job->getId());
  9. ?>


w takim razie dlaczego nie, odwołać sie do tego elementu przez JobeetJobPeer.
kamil_biela
Wtedy masz dodatkowe zapytanie do bazy danych, całkowicie niepotrzebne? Rozwiń swoją myśl trochę bardziej winksmiley.jpg.
kamil.deb
No bo do $this->getRoute()->getObject(), trzeba pisać routing, z opcjami, i wydaje mi sie ze na pierwszy rzut oka cięzko się w tym połapac, a gdyby odwołać się do tego modelu, przez

  1. <?php
  2. $c = new criteria;
  3. $c->add(modelPeer::ID, $request->getParameter('id'));
  4. $this->job = modelPeer::doSelectOne($c);
  5. ?>


Wydaje mi sie że taka wersja jest bardziej zwięzła, może troche więcej pisania, ale wszystko widze i szybko można sie połapać.
destroyerr
No to zapisuj sobie tak jak Ci wygodniej. Opcja pokazana w Jobeet ma przyspieszyć pracę i skrócić kod akcji, czyli odciążyć programistę. W Twoim kodzie brakuje jeszcze sprawdzania czy dany obiekt modelu istnieje i przekierowanie na 404, jeżeli nie istnieje. Dodatkowo, łatwo możesz przez konfiguracje zmieniac sposób pobierania obiektu czy też obiektów, poprzez ustawienie metod modelu, które mają pobierać dane. Jeszcze większa elastyczność jest w pluginie DbFinder, tam routing to jeszcze większa przyjemność.

Są sytuacje kiedy jest to balastem, ale wtedy możesz korzystać z "starego" rozwiązania.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.