Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Kohana] Tworzenie odnośników
PawelC
post
Post #1





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


Wszystko ładnie pięknie idzie mi w kohana php, tylko teraz mam problem jak tworzyć odnośniki. Może wstawię model, widok i kontroler.

Model:
  1. <?php defined('SYSPATH') or die('No direct script access.');
  2.  
  3. class Test_Model extends Model {
  4.  
  5.    public function __construct()
  6.    {
  7.        // load database library into $this->db (can be omitted if not required)
  8.        parent::__construct();
  9.    }
  10.    
  11.    public function kategorie()
  12.    {
  13.    $db=new Database();
  14.    $result=$db->query('select * from slowa limit 5');
  15.    foreach ($result as $row)
  16. {
  17.    echo '<a href="test/slowo/id/'.$row->id.'">'.$row->slowo.'<br />'; // to zapewne jest źle
  18.  
  19. }
  20. }
  21.  
  22. }
  23. ?>

Widok:
  1. <?php defined('SYSPATH') or die('No direct script access.');
  2.  
  3. $user = new Test_Model;
  4. $name = $user->kategorie();
  5. ?>

Oraz kontroler:
  1. <?php defined('SYSPATH') OR die('No direct access allowed.');
  2.  
  3. class Test_Controller extends Controller
  4. {
  5.    public function index()
  6.    {
  7.        $view = new View('test');
  8.        $view->render(TRUE);
  9.  
  10.     }
  11.  
  12.        
  13.    }
  14. }
  15. ?>

I skrypt działa w taki sposób, że pobiera dane z bazy, nazwy programów i teraz chciałbym aby po kliknięciu w odnośnik(jak powinien on wyglądać?) wyświetliło wszystko z bazy o klikniętym programie.
Zdaję sobie sprawę że będę musiał utworzyć jeszcze jeden model, który będzie odpowiedzialny za pobranie danego programu.

Ten post edytował ExPlOiT 5.06.2009, 11:31:52
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Villentre
post
Post #2





Grupa: Zarejestrowani
Postów: 21
Pomógł: 10
Dołączył: 14.10.2008
Skąd: 127.0.0.1

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


Witaj.
Podstawa: żadnych ech w modelach i kontrolerach (no, chyba, że jedynie w kontrolerze jedno echo za wyświetlenie zrenderowanego widoku odpowiedzialne (echo $view -> render(FALSE);)).

Przepisałem Twój kod po swojemu, mam nadzieję, że nic nie zgubiłem i nigdzie się nie pomyliłem. Wyszły mi 4 plik, wszystkie opisane poniżej:
  1. <?php defined('SYSPATH') OR die('No direct access allowed.');
  2. //controllers/test.php
  3. //Kontroler;
  4.    class Test_Controller extends Controller
  5.    {
  6.        public function __construct()
  7.        {
  8.            $this -> test = new Test_Model;
  9.        }
  10.        //Wyświetlanie 10 wpisów z bazy;
  11.        public function index()
  12.        {
  13.            $view = new View('test10');
  14.            $view -> date = $this -> test -> getTen();
  15.            $view -> render(TRUE);
  16.        }
  17.  
  18.        //Wyświetlanie 1 wpisu;
  19.        public function show($name)
  20.        {
  21.            $view = new View('test1');
  22.            $view -> date = $this -> test -> getOne($name);
  23.            $view -> render(TRUE);
  24.        }
  25.    }
  26.  
  27.  
  28. <?php defined('SYSPATH') or die('No direct script access.');
  29. //models/test.php
  30. //Model
  31.    class Test_Model extends Model
  32.    {
  33.        public function __construct()
  34.        {
  35.            parent::__construct(); //m.in. przypisanie new Database pod $this -> db;
  36.        }
  37.  
  38.        //Pobranie 1 wpisu z bazy
  39.        public function getOne($name)
  40.        {
  41.            $name = $this -> db -> escape($name); //"czyszczenie";
  42.            return $this -> db -> query('select * from gd_pliki where nazwa='.$name.'');
  43.        }
  44.  
  45.        //Pobranie 10 wpisów z bazy
  46.        public function getTen()
  47.        {
  48.            return $this -> db -> query("select * from gd_pliki limit 10");
  49.        }
  50.    }
  51.  
  52.  
  53. <?php defined('SYSPATH') or die('No direct script access.');
  54. //views/test10.php
  55. //Widok wyświetlający listę 10 wpisów;
  56.    if($date -> count())
  57.    {
  58.        echo '<ul>';
  59.        foreach($date as $dat)
  60.        {
  61.            echo '<li>'.html::anchor('test/show/'.$dat -> nazwa, $dat -> nazwa).'</li>';
  62.        }
  63.        echo '</ul>';
  64.    }
  65.    else
  66.    {
  67.        echo 'Brak danych';
  68.    }
  69.  
  70.  
  71. <?php defined('SYSPATH') or die('No direct script access.');
  72. //views/test1.php
  73. //Widok wyświetlający 1 wpis;
  74.    if($date -> count())
  75.    {
  76.        echo '<b>ID<b>: '.$date[0] -> id;
  77.        echo '<b>Nazwa</b>: '.$date[0] -> nazwa;
  78.    }
  79.    else
  80.    {
  81.        echo 'Brak danych';
  82.    }
  83. ?>

Edit:
@down: Rzeczywiście, mój błąd (tak to jest jak coś się kopiuje (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) ). Już poprawiłem.

Edit:
Wkurzające forum, zamienia html na bbc ;/

Ten post edytował Villentre 14.06.2009, 00:46:50
Go to the top of the page
+Quote Post

Posty w temacie


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: 27.12.2025 - 19:21