Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Kohana]kohana 3 problem
michal0825
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 1.02.2012

Ostrzeżenie: (0%)
-----


Witam, mam problem dotyczący absolutnych podstaw, a mianowicie przekazywania zmiennych z kontrolera do widoku.
Mam następujący kod w kontrolerze:
  1. $result = "abecad";
  2. $widok=new View('pages/users_register');
  3. $widok->bind('res', $result);
  4. // var_dump($widok);
  5. $this->request->response = $widok->render();

oraz w widoku:
  1. echo $res;


Niestety wywala błąd undefined variable res. Proszę o pomoc.
Go to the top of the page
+Quote Post
gothye
post
Post #2





Grupa: Zarejestrowani
Postów: 702
Pomógł: 65
Dołączył: 16.03.2009

Ostrzeżenie: (0%)
-----


spróbuj tak :
  1. $widok->res = $result
Go to the top of the page
+Quote Post
bzeebzee
post
Post #3





Grupa: Zarejestrowani
Postów: 38
Pomógł: 3
Dołączył: 25.12.2011

Ostrzeżenie: (0%)
-----


  1. $widok = View::factory('strona');
  2. $widok->abcd = 'abcd';
  3.  
  4. // odwołanie do zmiennnej 'abcd' w widoku 'strona.php'
  5. echo $abcd;
Go to the top of the page
+Quote Post
michal0825
post
Post #4





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 1.02.2012

Ostrzeżenie: (0%)
-----


Wszystkie te rozwiązania wywalają undefined variable.
Go to the top of the page
+Quote Post
gothye
post
Post #5





Grupa: Zarejestrowani
Postów: 702
Pomógł: 65
Dołączył: 16.03.2009

Ostrzeżenie: (0%)
-----


na pewno wywołujesz zmienną w widoku : pages/users_register ?
Go to the top of the page
+Quote Post
michal0825
post
Post #6





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 1.02.2012

Ostrzeżenie: (0%)
-----


tak
Go to the top of the page
+Quote Post
gothye
post
Post #7





Grupa: Zarejestrowani
Postów: 702
Pomógł: 65
Dołączył: 16.03.2009

Ostrzeżenie: (0%)
-----


pokaż dla pewności kontroller oraz widok
Go to the top of the page
+Quote Post
michal0825
post
Post #8





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 1.02.2012

Ostrzeżenie: (0%)
-----


Pokaże na akcji login, jest czytelniejsza, a problem występuje tak samo.
Kontroler: (classes/controller/users.php)
  1. public function action_login()
  2. {
  3.  
  4. $result = "abecad";
  5. $widok=new View('pages/users_login');
  6. //$widok->bind('res', $result);
  7. $widok->res = $result;
  8. // var_dump($widok);
  9. // $this->request->response = $widok->render();
  10. $this->response->body(new View('pages/users_login'));
  11.  
  12. }


i widok: (views/pages/users_login.php)
  1. <?php
  2. echo $res;
  3.  
  4. ?>
Go to the top of the page
+Quote Post
Crozin
post
Post #9





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Przecież w linii #10 z pow. listingu tworzysz i przekazujesz nowy obiekt View, który nie ma dodanej żadnej zmiennej, więc skąd niby miałaby się nagle wziąć ona w szablonie?

Ten post edytował Crozin 1.02.2012, 18:37:15
Go to the top of the page
+Quote Post
michal0825
post
Post #10





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 1.02.2012

Ostrzeżenie: (0%)
-----


Jak usunę tą linię to cokolwiek napisze w widoku się nie wyświetli, np echo "hello". Jak w takim razie rozwiązać to, żeby było dobrze?
Go to the top of the page
+Quote Post
gothye
post
Post #11





Grupa: Zarejestrowani
Postów: 702
Pomógł: 65
Dołączył: 16.03.2009

Ostrzeżenie: (0%)
-----


tutaj
przekazujesz object $this->response->body($widok);

bez potrzeby tworzenia nowego
Go to the top of the page
+Quote Post
michal0825
post
Post #12





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 1.02.2012

Ostrzeżenie: (0%)
-----


Dzięki gothye, działa, Dopiero 2 dzień z tym frameworkiem. Temat do zamknięcia.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.12.2025 - 01:42