Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Kohana]Pierwsz aplikacja
Forum PHP.pl > Forum > PHP > Frameworki
marcio
WItam fajnie by bylo jakby sie nikt ze mnie sie smial z gory mowie ze jestem lamerem w KOHANA znam ja od dzisiaj zainstalowalem sobie wszystko stworzylem katalog logs i models w application i probuje stworzyc pierwsza "aplikacje" ktora powinna pobierac dane uzytkownikow z mojej starej bazy i ich wyswietlic w tabeli.

Ustawilem config database jednak o ile mi sie wydaje w routes tez powinienem zmienic defualtowa opcje jednak nie wiem zabardzo na co.

Potem nie wiem dokonca jak ma wygladac controller,model i widok jak narazie robie cos w tym stylu:
Controller:(application/controllers/users.php)
  1. <?php
  2.  
  3. defined('SYSPATH') OR die('No direct access allowed.');
  4.  
  5. class Users_Controller extends Controller {
  6.  
  7.    const ALLOW_PRODUCTION = FALSE;
  8.  
  9.    //public $template = 'kohana/template';
  10. public $template = 'users_content';
  11.    
  12.    public function __construct(){
  13.  
  14.     parent::__construct();
  15.  
  16.      $this->template = new View($this->template);
  17.  
  18.    }
  19.    
  20.    public function index()
  21.    {
  22.        
  23.          $user = Users_Model;
  24.          $user -> GetUsers();
  25.          $this -> template -> render(TRUE);
  26.        
  27.    }
  28. }
  29.  
  30. ?>

Model:(application/models/users.php)
  1. <?php
  2. class Users_Model extends Model {
  3.  
  4. public $users = array();
  5.  
  6. function __construct() {
  7.  
  8.   parent::__construct();
  9.    
  10. }
  11.  
  12.      
  13. public function show() {
  14.  
  15.   $this -> users = $this -> db -> query('select id,login,email from users limit 5');
  16.        
  17.   }
  18. }
  19. ?>

Czytalem ze dziedziczac po Model w polu $db mamy juz obiekt bazy danych wiec go nie tworzylem na nowo.

Widok:(application/views/users_content.php)
  1. <?php defined('SYSPATH') OR die('No direct access allowed.'); ?>
  2. <table align="center">
  3.  <tr>
  4.   <td>Id</td>
  5.   <td>Login</td>
  6.   <td>EMAIL</td>
  7.  </tr>
  8.  <tr>
  9.   <td><?php echo($id) ?></td>
  10.   <td><?php echo($login) ?></td>
  11.   <td><?php echo($email) ?></td>
  12.  </tr>
  13. </table>

Wiem powinna tam byc petla foreach() ale to tylko zarys.

Chcialbym by ktos mnie nakierowal co musze zrobic moze w ogole pomylilem katalogi jak mam pobrac dane w modelu i potem wykonwac to w controlerze zeby on potem wszystko wyrenderowal.

Nie oczekuje ze ktos mi wszystko napisze ale jakies nakierowanie bo poczatki sa najgorsze.

P.S probowalem zmienic tez -htaccess na ten z tego watku Temat: Kohanapozbycie_sie_indexphp a w glownym config'u.
A w configu dalem: $config['index_page'] = NULL;
adrian.p
Polecam lekturę na sam początek:
http://nasza.kohanaphp.pl/
marcio
Czytalem!!
skowron-line
http://docs.kohanaphp.com/general/models
tu masz wszystko o modelu.

a pozatym masz tak
w modelu metode show
a w kontrolerze pobierasz
  1. <?php
  2. $user = Users_Model;
  3.         $user -> GetUsers();
  4. ?>
marcio
Ok poczytam dzis wieczorem pokombinuje tyle sie naczytalem ze sam widzisz nawet nazwy metod pomylilem tongue.gif musze ochlonac.
Cypherq
Tu masz usuwanie index.php z Kohany.

http://planet.kohanaphp.pl/tutorial/removing_index.html

Co do modelu, tak jak powiedział Skowron. Inaczej nazywasz metodę w modelu a innej używasz przy wywołaniu tej metody w kontrolerze.
marcio
@UP ten link wyzej nie dziala mi ani na IE ani na FF mam ciagly redirect i strona sie nie wczytuje.
Cypherq
W skrócie, wróć do defaultowych opcji w configu, zmień jedynie ścieżkę do aplikacji.

A Twój .htaccess wyglądać powinien mniej więcej tak:

Kod
# Włączenie przepisywania URLi
RewriteEngine On

# Wstaw katalog instalacyjny:
# Jeżeli twój URL to www.strona.pl/kohana/, użyj /kohana/
# Jeżeli twój URL to www.strona.pl/, użyj /
RewriteBase /kohana/

# Chroń pliki z katalogów application i system przed dostępem
RewriteCond $1 ^(application|system)

# Przepisz adres na index.php/access_denied/URL
RewriteRule ^(.*)$ index.php/access_denied/$1 [PT,L]

# Pozwól na wyświetlanie tych katalogów i plików:
# - index.php (NIE ZAPOMNIJ O TYM!)
# - robots.txt
# - favicon.ico
# - Wszystkie pliki wewnątrz katalogów images/, js/, albo css/
RewriteCond $1 ^(index\.php|robots\.txt|favicon\.ico|images|js|css)

# Brak przepisywania
RewriteRule ^(.*)$ - [PT,L]

# Przepisywanie wszystkiego innego na index.php/URL
RewriteRule ^(.*)$ index.php/$1 [PT,L]


Dodatkowo tworzysz kontroler o nazwie access_denied.php
  1. <?php
  2.  
  3. class Access_denied_Controller extends Controller {
  4.  
  5.        function _remap()
  6.        {
  7.                // Żądana ścieżka, bez wyrażenia "access_denied/"
  8.                $path = preg_replace('|^access_denied/|', '', $this->uri->string());
  9.  
  10.                //Wyświetl stronę błędu
  11.                throw new Kohana_User_Exception
  12.                (
  13.                        'Bezpośredni dostęp zabrobiony',
  14.                        'Plik lub katalog, do którego chcesz się dostać, <tt>'.$path.'</tt>, nie może zostać wyświetlony. '.
  15.                        'Możesz wrócić do '.html::anchor('', 'strony głównej').' w każdym momencie.'
  16.                );
  17.        }
  18.  
  19. }
  20. ?>
marcio
Kurde musze przyznac ze super to jest ochlonolem troche poczytalem dokumentacje i jakies tam arty i juz wszystko wiem co i jak robic tzn wszystko controllery,modele i widoki i do tego potrafie skonfigurowac wszystko tak jak chce oczywiscie dla potrzeb ktore jak dotad mialem.

Wiec zrobilem sobie jak narazie male wyswielanie user'ow samego widoku nie pokarze bo mysle ze jest to zbedne poniewaz dziala.

Controller:
  1. <?php
  2.  
  3. defined('SYSPATH') OR die('No direct access allowed.');
  4.  
  5. class Users_Controller extends Controller {
  6.  
  7. const ALLOW_PRODUCTION = FALSE;
  8.  
  9. public $template = 'kohana/template';
  10.    
  11.    
  12.  public function __construct(){
  13.  
  14.     parent::__construct();
  15.  
  16.  }
  17.    
  18.    
  19.   public function index() {
  20.        
  21.          $user = new Users_Model;
  22.          $temp = new View('users_content');
  23.  
  24.          $users = $user -> GetUsers();
  25.          $temp -> set('user', $users);
  26.          $temp -> render(TRUE);
  27.    }
  28.  
  29.   public function GetSpecifyUser($name) {
  30.        
  31.          $user = new Users_Model;
  32.          $temp = new View('user_content');
  33.  
  34.           $usr = ($this -> uri -> total_segments() == 3) ? $user -> GetUser($this -> uri -> segment(3)) : $user -> GetUser('bios');
  35.  
  36.          $temp = new View('user_content');
  37.          $temp -> set('user', $usr);
  38.          $temp -> render(TRUE);
  39.    }
  40.  
  41. }
  42.  
  43. ?>

I tu model:
  1. <?php
  2. class Users_Model extends Model {
  3.  
  4. public function __construct() {
  5.  
  6.   parent::__construct();
  7.    
  8. }
  9.  
  10.      
  11. public function GetUsers($limit = 5) {
  12.  
  13.   return $this -> db -> query('select id,login,email from users limit '.$limit);
  14.        
  15.   }
  16.  
  17.  
  18. public function GetUser($name) {
  19.  
  20.   return $this -> db -> query('select id,login,email from users where login = '.$name);
  21.   //return $this -> db -> select('id, login, email') -> from('users') -> where('login', $name);
  22.        
  23.   }
  24.  
  25. }
  26. ?>

No i jak wejdziemy na: http://marcio.szu.pl/kohana/index.php to wszystko jest ok.
Na: http://marcio.szu.pl/kohana/index.php/user...cifyUser/marcio mamy error nie wiem dlaczego rotfl powinno dzialac....
Na: http://marcio.szu.pl/kohana/index.php/users/GetSpecifyUser/ nom i tutaj tak jakby ten warunek nie dzialal:
  1. <?php
  2. $usr = ($this -> uri -> total_segments() == 3) ? $user -> GetUser($this -> uri -> segment(3)) : $user -> GetUser('bios');
  3. ?>

Probowalem sprawdzac $this -> uri -> segment(3) za pomoca != False,!empty() i isset() i albo blad ze cos tam nie moze zwrocic a z false nie dziala jak ustawic defaultowy parametr bo jak zrobie tak: $this -> uri -> segment(3, 'marcio') to jesli nie bedzie argumentu to defaultowo da marcio tak zrozumialem z dokumentacji: http://docs.kohanaphp.com/libraries/uri

I teraz mam kilka pytan
1.)Co daje mi dodanie arg. TRUE do metody render() bo jak nie dodam echo() w widoku to nie wyswietla mi zawsze musze miec ehco() nawet jak mam TRUE lub jak go nie ma jak to obejsc??

2.)Jestemy w: kohana/system/config/database.php mamy dyrektywe:
Kod
'object' => TRUE

Nom i wiem jak operowac na danych zwroconych przez query() czyli $zmienna -> index_z_db i to dziala.
Co jesli dam FALSE na object?Jak mam wtedy operowac na danych bo zabardzo nie wiemquestionmark.gif

3.)Czy w zapytaniach sql zmienne sa automatyczne filtrowane bo jak dodam np: mysql_real_escape_string() to mam jakis error bez niego smiga.

4.)Defaultowo mamy dyrektywe error na 1 jednak przy samym tworzeniu aplikacji lvl 4 duzo daje?Czy po skonczeniu zostawic 4 lub dac spowrotem na 1?

5.)Czy mozna zmienic nazwe defaultowej nazwy funkcji tzn zmienic z index() na inna w zadnym configu nie znalazlem takiej mozliwosci?

6.)Mamy sobie Template klase View i mam takie pytanie czy zmienne w szablonach mozna ustawiac tylko za pomoca pol tzn
  1. <?php
  2. $view -> pole_z_widoku = 'jakas wartosc';
  3. $view -> set('pole_z_widoku', 'wartosc');
  4. ?>

Lub sa jakies inne metody jeszcze?

7.)Co to jest ORM do czego to uzywac i jaka jest roznica pomiedzy ORM a LDAP czy cos takiego.

Sorki ze tak duzo pytan i ze tak dupe truje no ale coz wszystkiego nauczyc sie nie mozna.

PoZdro.
skowron-line
Pytasz jak ustawić wartości Defaultowych
  1. <?php
  2. public function GetUser( $name = 0) {
  3.  
  4.  return $this -> db -> query('select id,login,email from users where login = '.$name);
  5.  //return $this -> db -> select('id, login, email') -> from('users') -> where('login', $name);
  6.      
  7.  }
  8. ?>

A pozatym to wedlug mnie niepotrzebnie robisz 2 metody
getUser i getUsers powinna byc jedna, jak jest parametr to wybiera jednego usera jak nie ma to zwraca wszystkich
  1. <?php
  2. $usr = ($this -> uri -> total_segments() == 3) ? $user -> GetUser($this -> uri -> segment(3)) : $user -> GetUser('bios');
  3. ?>
questionmark.gif

W dokumentacji jest napisane tak że
Kod
kontroler/metoda/parametr_1/parametr_2

więc niepotrzebnie robisz tego $this->uri->total_segments()
marcio
Cytat
Pytasz jak ustawić wartości Defaultowych

fakt faktem zapedzilem sie i zapomnialem o standartowych defaultowych wartosci arg. funkcji Rotfl zdarza sie tongue.gif


Czy ktos moze odpowiedziec chodzby na kilka pytan z posta wczesniej i do tego mam jeszcze jedno pytanie bo nie znalazlem tego w docs KOHANY a nie wiem zabardzo gdzie i jak szukac jak narazie.

Chodzi o warunki IF w widokach tzn czy jestem zmuszony robic 2 osobne widoki np dla zalogowanego i nie zalogowanego user'a lub gdy chce wyswietlic profil user'a a takiego nie ma w bazie i musze zwrocic error??

Lub moge uzyc warunki if w widokach na zasadzie zmiennych do niego przesylanych?

P.S dziwnie to dziala pod KOHANA ale nawet jak dam public function GetUser( $name = 'marcio') to nie dziala ROTFL....
magnus
W dokumentacji tego nie znajdziesz (chyba że jakieś tutoriale czy przykładowe aplikacje), bo konkretne rozwiązania takich spraw są pozostawione programiście.
Ja to rozwiązuję np. tak:
- jeśli nie ma profilu i muszę wyświetlić stronę błędu to korzystam z $this->template->set_filename('error') gdzie w error.php mam szablon wyśw. komunikat błędu,
- jeśli strona zalogowany/nie zalogowany różni się mocno to również można korzystać z dwóch osobnych szablonów,
- jeśli różni się tylko szczegółami (np. dla nie zalogowanych jest formularz logowania a dla zalogowanych jakieś info), to można to warunkowo inkludować na poziomie widoku albo na poziomie kontrolera. Przykładowo w szablonie wykorzystuję zmienną 'left' jako zawartość lewej kolumny strony a w kontrolerze wówczas np.:

Kod
if (if ($this->user->isLogged()) {
    $this->left = new View('modules/login_info');
} else {
    $this->left = new View('modules/login_form');
}
phpion
Cytat(marcio @ 19.05.2009, 01:15:57 ) *
1.)Co daje mi dodanie arg. TRUE do metody render() bo jak nie dodam echo() w widoku to nie wyswietla mi zawsze musze miec ehco() nawet jak mam TRUE lub jak go nie ma jak to obejsc??

Kohana jest na tyle prostym frameworkiem, że bez problemu możesz dojść do tego jak co działa patrząc w kody źródłowe. I tak jeśli chodzi o metodę render() to wywołanie $view->render(TRUE) jest równoznaczne z echo $view->render(). Podanie pierwszego parametru jako TRUE spowoduje przesłanie widoku na wyjście. Jeśli chciałbyś przypisać wygenerowany widok do zmiennej to wystarczy zrobić $var = $view->render().

Cytat(marcio @ 19.05.2009, 01:15:57 ) *
2.)Jestemy w: kohana/system/config/database.php mamy dyrektywe:
Kod
'object' => TRUE

Nom i wiem jak operowac na danych zwroconych przez query() czyli $zmienna -> index_z_db i to dziala.
Co jesli dam FALSE na object?Jak mam wtedy operowac na danych bo zabardzo nie wiem??

Jeżeli użyjesz FALSE (result_array(FALSE)) w wyniku otrzymasz tablicę asocjacyjną czyli odwołujesz się $zmienna['index'].

Cytat(marcio @ 19.05.2009, 01:15:57 ) *
3.)Czy w zapytaniach sql zmienne sa automatyczne filtrowane bo jak dodam np: mysql_real_escape_string() to mam jakis error bez niego smiga.

Tak, jeżeli korzystasz z query buildera to nie musisz się o to martwić. Jeśli natomiast wykonujesz zapytania "z palca" metodą query() to wówczas takie dane nie są zabezpieczane i wówczas musisz o to zadbać samemu (są odpowiednie metody do tego - poszukaj).

Cytat(marcio @ 19.05.2009, 01:15:57 ) *
4.)Defaultowo mamy dyrektywe error na 1 jednak przy samym tworzeniu aplikacji lvl 4 duzo daje?Czy po skonczeniu zostawic 4 lub dac spowrotem na 1?

Nie bardzo wiem o czym mówisz. Chodzi Ci o 'log_threshold' z config.php?

Cytat(marcio @ 19.05.2009, 01:15:57 ) *
5.)Czy mozna zmienic nazwe defaultowej nazwy funkcji tzn zmienic z index() na inna w zadnym configu nie znalazlem takiej mozliwosci?

Nie można. Możesz jedynie pobawić się routingiem ale nie wiem czy osiągniesz to co chcesz (nie wiem za bardzo co chcesz osiągnąć tongue.gif).

Cytat(marcio @ 19.05.2009, 01:15:57 ) *
6.)Mamy sobie Template klase View i mam takie pytanie czy zmienne w szablonach mozna ustawiac tylko za pomoca pol tzn

Jest jeszcze set_global(). Nie wiem po co Ci więcej możliwości przypisywania zmiennych do widoku. Chyba 2 możliwości w zupełności wystarczą. Aha, możesz również przypisać je hurtowo podając je jako tablicę (nazwa zmiennej => wartość) jako drugi parametr konstruktora View.

Cytat(marcio @ 19.05.2009, 01:15:57 ) *
7.)Co to jest ORM do czego to uzywac i jaka jest roznica pomiedzy ORM a LDAP czy cos takiego.

Ujmę to krótko: ORM sobie daruj, zbędny bajer. Więcej z nim problemów niż pożytku (taka jest moja osobista opinia) O samej istocie ORM możesz poczytać chociażby na Wikipedii.

Cytat(marcio @ 19.05.2009, 17:16:18 ) *
Chodzi o warunki IF w widokach tzn czy jestem zmuszony robic 2 osobne widoki np dla zalogowanego i nie zalogowanego user'a lub gdy chce wyswietlic profil user'a a takiego nie ma w bazie i musze zwrocic error??

Lub moge uzyc warunki if w widokach na zasadzie zmiennych do niego przesylanych?

Możesz do widoku przypisać zmienną prawda/fałsz i na tej podstawie wyświetlić odpowiednie dane. Możesz również już na poziomie kontrolera załadować odpowiedni widok w zależności od jakiś tam warunków.

To chyba tyle. W razie czego pytaj dalej.
tomahawk
A co do usuwania index.php z adresu to czy czasem w obecnej wersji nie jest to domyślnie zrobione?

Bo mam taki .htaccess jak wyżej podano i mi nie działa. Tzn. ciągle mam 404 not found. Kohane mam zainstalowanom pod strona.pl/

A jak zainstalowałem pod strona.pl/kohana/ to adresy dzialały bez index.php z domyślnym nie modyfikowanym.htaccess...

Dziwne to...
Cypherq
  1. <?php
  2. $config['site_domain'] = xxx;
  3. ?>


Masz ustawione odpowiednie w config.php?
tomahawk
Niewiem zabardzo co tam ma być bo domyślnie jest folder kohana/ więc zostawiłe samego slasha / a potem wpisałem domenę i i tak nie działa.

Pozatym ten błąd 404 to nie jest na poziomie kohany tylko .htaccess poprostu rewrite nie działa i standardowa strona 404 apacha mi się wyświetla...


BTW.
Mam drugą sprawę.....
Czytam tak te tutoriale i czytam i wszędzie jest np. wyświetlanie samych artykułów.
A co jeśli mam kilka podstron i na jednej sa arty na innych komentarze i w każdej podstronie jest takie samo menu.

Jak mam teraz rozwiązać problem takich elementów jak menu?
Bo jak wyświetlam artykuły to musze do widoku przekazac artykuły i menu i co tam jeszcze potrzeba.
Jak będę wyświetlał komentarze to musze przekazać do widoku komentarze i znowu menu.
Czy da się jakoś to zautomatyzowac żeby menu się samo przekazywało do widoku?
marcio
Cytat
Jeżeli użyjesz FALSE (result_array(FALSE)) w wyniku otrzymasz tablicę asocjacyjną czyli odwołujesz się $zmienna['index'].

To jednak wole pracowac na objektach.

Cytat
Tak, jeżeli korzystasz z query buildera to nie musisz się o to martwić. Jeśli natomiast wykonujesz zapytania "z palca" metodą query() to wówczas takie dane nie są zabezpieczane i wówczas musisz o to zadbać samemu (są odpowiednie metody do tego - poszukaj).

Nom wiem ze w query builider sa zabezpieczenia najmniej jednak mnie dziwi fakt ze gdy uzylem mysql_real_escape_string() to dostalem error zwiazany wlasnie z ta funkcja stad te pytanie.

Cytat
Nie bardzo wiem o czym mówisz. Chodzi Ci o 'log_threshold' z config.php?

Tak chodzi dokladnie o to gdy damy 4 to logi zapisuja sie tez w pliku logs/data.log.php w sumie wydaje sie to bardzo przydatne.

Cytat
Nie można. Możesz jedynie pobawić się routingiem ale nie wiem czy osiągniesz to co chcesz (nie wiem za bardzo co chcesz osiągnąć tongue.gif ).

Jako defaultowa funkcje w KOHANA jest wywolywany index() czyli jesli link wyglada tak www.cos.pl/kohana/modul/ lub bez modul/ to zawsze wykona sie index() jesli nie ma nazwy funkcji po nazwie modulu mozna zmienic nazwe defaultowej funckji z index() na __default() co wydaje mi sie bardziej praktyczne.

Cytat
Jest jeszcze set_global(). Nie wiem po co Ci więcej możliwości przypisywania zmiennych do widoku. Chyba 2 możliwości w zupełności wystarczą. Aha, możesz również przypisać je hurtowo podając je jako tablicę (nazwa zmiennej => wartość) jako drugi parametr konstruktora View.

Czyli w sumie mamy 4 rozwiazania pola,set(),View() i set_global() jednak nie rozumiem zabardzo co nam daje set_global() jak domyslam sie mamy globalna zmienna z widoku ale po co??

Cytat
O samej istocie ORM możesz poczytać chociażby na Wikipedii.

Pierwsz rzecz jaka robie jesli czegos nie znam a chce o tym zapytac na forum probuje sie doinformowac jednak nie wiele to dalo dlatego zapytalem.

Cytat
Możesz do widoku przypisać zmienną prawda/fałsz i na tej podstawie wyświetlić odpowiednie dane. Możesz również już na poziomie kontrolera załadować odpowiedni widok w zależności od jakiś tam warunków.

Nie bardzo rozumiem jak zrobic to za pomoca 1 sposobu??2 rozumiem i wiem jak zaimplementowac jednak pierwszy nie molgbys zapodac jakis przyklad bo w dokumentacji takich bajerow nie ma tongue.gif.

I mam jeszcze jedno pytanie dotyczace walidacji formularzy powiedzmy mam sobie widok login_form no i w nim wyswietlac sobie formularz.

I teraz mam pytanie jak walidowac formularze przychodza mi do glowy 2 sposoby.
1.)Dajemy w action="" nazwe funkcji ktora ma sie wykonac np action="ValidatePost" i w tej funckji walidujemy wszystko.
2.)Mamy form w z action="" w controllerze w metodzie index() mamy if ktora sprawdza czy form nie zostal wyslany jesli tak walidujemy wszystko.

EDIT:@tomahawk fajnie by bylo jesli bys zalozyl wlasny temat bo tu robi sie burdel i potem nikt nic nie zrozumie, i oczywscie nie chcialem byc chamski tongue.gif...
phpion
Cytat(marcio @ 20.05.2009, 00:48:11 ) *
Nie bardzo rozumiem jak zrobic to za pomoca 1 sposobu??2 rozumiem i wiem jak zaimplementowac jednak pierwszy nie molgbys zapodac jakis przyklad bo w dokumentacji takich bajerow nie ma tongue.gif.

Dokładnie taki przykład podał Ci ~magnus więc pozwolę go sobie zacytować:
Cytat(magnus @ 19.05.2009, 17:54:51 ) *
Kod
if (if ($this->user->isLogged()) {
    $this->left = new View('modules/login_info');
} else {
    $this->left = new View('modules/login_form');
}


Cytat(marcio @ 20.05.2009, 00:48:11 ) *
I mam jeszcze jedno pytanie dotyczace walidacji formularzy powiedzmy mam sobie widok login_form no i w nim wyswietlac sobie formularz.

I teraz mam pytanie jak walidowac formularze przychodza mi do glowy 2 sposoby.
1.)Dajemy w action="" nazwe funkcji ktora ma sie wykonac np action="ValidatePost" i w tej funckji walidujemy wszystko.
2.)Mamy form w z action="" w controllerze w metodzie index() mamy if ktora sprawdza czy form nie zostal wyslany jesli tak walidujemy wszystko.

W dokumentacji masz prosty i czytelny przykład walidacji formularza (w sekcji Examples, na dole). Przeanalizuj go i stwórz swój formularz.
marcio
Cytat
W dokumentacji masz prosty i czytelny przykład walidacji formularza (w sekcji Examples, na dole). Przeanalizuj go i stwórz swój formularz.

No ja dokumentacje przegladalem to jest oczywiste jednak tutaj: http://blog.bexlab.pl/prosty-formularz-kontaktowy/257/ mamy walidacje za pomoca funkcji podanej w action="" forrma czyli action="home/send" gdzie w controllerze funkcja send() waliduje wszystko.

I na to tez wpadlem jednak czy tak tez mozna robic?
Cytat
2.)Mamy form w z action="" w controllerze w metodzie index() mamy if ktora sprawdza czy form nie zostal wyslany jesli tak walidujemy wszystko.


Cytat
Dokładnie taki przykład podał Ci ~magnus więc pozwolę go sobie zacytować:
Cytat

Cytat(magnus @ 19.05.2009, 17:54:51 ) Kodif (if ($this->user->isLogged()) {
$this->left = new View('modules/login_info');
} else {
$this->left = new View('modules/login_form');
}



@Phpion ty napisales:
Cytat
Możesz również już na poziomie kontrolera załadować odpowiedni widok w zależności od jakiś tam warunków.

I wydaje mi sie przyklad @magnus odwolywal sie wlasnie to twojego wyzej zacytowanego zdania.

Jednak 1 polowa twojego zdania wygladala tak:
Cytat
Możesz do widoku przypisać zmienną prawda/fałsz i na tej podstawie wyświetlić odpowiednie dane

I jak to by mialo wygladac?

SOrki ze tak truje ale jak juz te rzeczy bede mial jasne to sie zabiore za pisanie prostego systemu news'ow by cos zobaczyc.
phpion
Cytat(marcio @ 20.05.2009, 14:21:25 ) *
Jednak 1 polowa twojego zdania wygladala tak:

I jak to by mialo wygladac?

Sory, faktycznie. Więc tak: w kontrolerze przypisujesz jakąś zmienną do widoku:
  1. <?php
  2. $view->var = TRUE;
  3. ?>

natomiast w samym widoku robisz instrukcję warunkową:
  1. <?php if ($var === TRUE): ?>
  2. Tak
  3. <?php else: ?>
  4. Nie
  5. <?php endif; ?>
marcio
Aha super to trzeba bedziesz sie wziasc za napisanie czegos dzieki wszystkim.
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.