Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [CakePHP] Problem z pobraniem rekordu
Forum PHP.pl > Forum > PHP > Frameworki
Bajki
Witam
Mam mały problem z pobraniem rekordu z bazy przy użyciu frameworka CakePHP.

pliki :

shows_controller.php
  1. <?php
  2. class ShowsController extends AppController
  3. {
  4.    var $name = 'Shows';
  5.    var $helpers = array('Modifier', 'Component');
  6.    var $paginate = array('limit' => 5, 'page' => 1, 'order'=>array('date' => 'desc'));
  7.    
  8.    function index()
  9.    {
  10.            (...)
  11.    }
  12.    
  13.    function view($date = null)
  14.    {
  15.        $this->Show->date = $date;
  16.        $this->set('shows', $this->Show->read());
  17.    }
  18.  
  19.  
  20. }
  21. ?>


kiedy w przeglądarce wpisuje adres :
Kod
http://localhost/blog/shows/view/1227740400


zapytanie nic nie zwraca. Ale nie dlatego, że rekord nie istnieje(bo istnieje) a dlatego, że tworzone jest błędne zapytanie :

  1. SELECT `Show`.`id`, `Show`.`user_id`, `Show`.`title`, `Show`.`city`, `Show`.`date`, `Show`.`bands`, `Show`.`authors`, `Show`.`content`, `Show`.`comments` FROM `shows` AS `Show` [b]WHERE `Show`.`id` = 1227740400[/b] LIMIT 1


Nie wiem dlaczego, ale w zapytaniu sprawdzana jest tabela ID a nie DATE... ma ktoś może jakiś pomysł jak to rozwiązać ? winksmiley.jpg był bym bardzo wdzięczny

Pozdrawiam i z góry dziękuje !
woj_tas
Metoda read pobiera zawsze rekord odwolujac sie do priwary key (najczesciej id)
  1. <?php
  2. function view($id = null)
  3.   {
  4.       $this->Show->id = $id;
  5.       $this->set('shows', $this->Show->read());
  6.   }
  7. ?>


W twoim przypadku powinno wyglądać to tak:

  1. <?php
  2. function view($date = null)
  3.   {
  4.       $this->set('shows', $this->Show->findByDate($date));
  5.   }
  6. ?>
Bajki
Super, teraz działa ! winksmiley.jpg dzięki za pomoc winksmiley.jpg
pawelvod
Zmień 'date'. To jest słowo zastzreżone używane między innymi w php, html, sql i większości języków. Nazywanie pola w tabeli w ten sposób to bardzo nieszczęśliwy pomysł. Zmień nazwę kolumny na date2, czy ddate i wszystko będzie ok.
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.