Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony]sfGuard
Forum PHP.pl > Forum > PHP > Frameworki
Lonas
Hej - stworzylem sobie component.class.php - w layoucie chce wyswietlic nazwe zalogowanego uzytkownika
<?php include_component('gallery', 'GetUser') ?>

szukam i nie moge znalesc jak nazywa sie obiekt ktory tworzy sf_guard ?

tak np nie dziala
  1. <?php
  2. if($this ->sf_user)
  3.        $this->user = $this->sf_user -> getUser()->getGuardUser()->getUsername();
  4.      else
  5.        $this -> user ="brak";
  6. ?>
destroyerr
Powiem szczerze, że może coś przeoczyłem ale nie wiem skąd masz:
  1. <?php
  2. $this->sf_user
  3. ?>


Nie ma klasy sf_guard więc nie można też stworzyć takiego obiektu. Pewnie chodziło Ci o sfGuardUser.
  1. <?php
  2. $sf_user->getGuardUser()->getUsername();
  3. //lub
  4. $sf_user->getUsername();
  5. ?>
Lonas
Tylko jak sprawdzic czy taki obiekt istnieje

$sf_user

Bo jak sprawdzam tak
  1. <?php
  2. if($sf_user->getUser()->getGuardUser()->getUsername() )
  3.        $this -> user ="jest";
  4.      else
  5.        $this -> user ="nie ma";
  6. ?>


to w przypadku kiedy ten obiekt sf_user nie istnieje to pisze ze nie znana zmienna.

Probowalem tez sprawdzac tak :
  1. <?php
  2. if(isset($sf_user ))
  3.        $this -> user ="jest";
  4.      else
  5.        $this -> user ="nie ma";
  6. ?>


to caly czas pokazuje ze nie ma nawet po zalogowaniu

a takie pytanie jeszcze mam : gdzie moge podejrzec w jaki spoosb sf_guard dodaje uzytkownikow do bazy ? bo chcialbym sobie napisac formularz rejestracji na stronie
destroyerr
Heh, zmienna $sf_user nie jest tworzona przez plugin tylko przez framework. Wynika z tego, że zmienna ta jest zawsze dostępna w szablonach. Oczywiście może być inaczej jeśli sam świadomie zmienisz ładowanie tych zmiennych. Zmienne te są ładowane dynamicznie, więc nie odwołuj się do nich przez $this bo ich tam zwyczajnie nie ma, w ogóle z tego co wiem, to w szablonie nie odwołujesz się do klasy widoku.

Napisz dokładnie co chcesz sprawdzić, bo ja nadal nie rozumiem.

Jak dodaje do bazy? Pytania coraz niższy mają poziom. sfGuardUser to model, tworzysz jego obiekt, wypełniasz i zapisujesz.
Lonas
Rejestracje uzytkownikow juz napisalem smile.gif hehe faktycznie glupie pytanie bylo ;-)

Odnosnie pierwszego chce sprawdzic czy jest zalogowany uzytkownik
destroyerr
Zacząłem podejrzewać, że chcesz to sprawdzać. Symfony logowanie użytkownika ma wbudowane, sfGuardPlugin usprawnia korzystanie z tego. Tak więc sprawdzanie czy user jest zalogowany działa przy pomocy samego frameworka.
Czyli:
  1. <?php
  2. $sf_user->isAuthenticated();
  3. ?>
Lonas
Nie wiedzialem o tym smile.gif

działa dzieki za pomoc !

Mam jednak jeszcze jeden problem: w kontrolerze działa mi cos takiego :

  1. <?php
  2. $root1 = GalleryPeer::retrieveTree($this->getUser()->getGuardUser()->getId());
  3. ?>


sprawdzam id uzytkownika i wyswietlam odpowiednia galerie


teraz mam formularz gdzie w galleryPeer pobieram dane do wyswietlenia w select tylko ze tutaj nie ma juz id uzytkownika w this..
jak moge sie dobrac w tej klasie do id uzytkownika ?

  1. <?php
  2. class GalleryPeer extends BaseGalleryNestedSetPeer
  3. {
  4.  static public function getOptionForSelect()
  5.  {
  6.    $gallery_tree = GalleryPeer::retrieveTree($this->getUser()->getGuardUser()->getId());
  7.    $options = array();
  8.    $gallery = new RecursiveIteratorIterator($gallery_tree, RecursiveIteratorIterator::SELF_FIRST);
  9.  
  10.    foreach ($gallery as $m)
  11.    {
  12.      $linia = "";
  13.      for($i=0;$i<$m->getLevel();$i++)
  14.       $linia = $linia." - ";
  15.      
  16.      $options[$m->getGalleryId()] = $linia.$m->getName();
  17.    }
  18.    
  19.    return $options;
  20.  }
  21. }
  22. ?>


nastepenie dane ida do widget-a

  1. <?php
  2. 'gallery_id'       => new sfWidgetFormSelect(array('choices' => GalleryPeer::getOptionForSelect() ),array('class'=>'gallery')),
  3. ?>
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.