⊗ppMVUFmRPA 9 of 35 menu

Εφαρμογή παραμέτρων σε διαδρομές στο MVC σε PHP

Ας δούμε την εφαρμογή του περιγραφέντος σε ένα πιο ρεαλιστικό παράδειγμα. Ας υποθέσουμε ότι ο controller μας PageController περιέχει έναν πίνακα σελίδων (αυτά τα δεδομένα θα έπρεπε να τα επιστρέφει ένα model, αλλά με τα models δεν έχουμε ασχοληθεί ακόμα, οπότε ας μένουν τα δεδομένα προς στιγμήν αποθηκευμένα στον controller):

<?php namespace Project\Controllers; use Core\Controller; class PageController extends Controller { private $pages; public function __construct() { $this->pages = [ 1 => 'page 1', 2 => 'page 2', 3 => 'page 3', ]; } } ?>

Ας φτιάξουμε μια δράση show, η οποία θα εμφανίζει στην οθόνη μια σελίδα με έναν συγκεκριμένο αριθμό (id):

<?php namespace Project\Controllers; use Core\Controller; class PageController extends Controller { private $pages; public function __construct() { $this->pages = [ 1 => 'page 1', 2 => 'page 2', 3 => 'page 3', ]; } public function show() { // εδώ θα εμφανίσουμε τη σελίδα με τον συγκεκριμένο αριθμό } } ?>

Ας υποθέσουμε ότι κατά την πρόσβαση στη διεύθυνση /page/1/ να εμφανίζεται το κείμενο της πρώτης σελίδας, κατά την πρόσβαση στη διεύθυνση /page/2/ - το κείμενο της δεύτερης σελίδας και ούτω καθεξής. Ας φτιάξουμε την αντίστοιχη διαδρομή:

<?php use \Core\Route; return [ new Route('/page/:id/', 'page', 'show'), ]; ?>

Ας υλοποιήσουμε την περιγραφείσα μέθοδο show:

<?php namespace Project\Controllers; use Core\Controller; class PageController extends Controller { private $pages; public function __construct() { $this->pages = [ 1 => 'page 1', 2 => 'page 2', 3 => 'page 3', ]; } public function show($params) { echo $this->pages[ $params['id'] ]; // εμφανίζουμε τη σελίδα βάσει αριθμού } } ?>

Υλοποιήστε τον controller UserController, που περιέχει τον ακόλουθο πίνακα:

<?php $this->users = [ 1 => ['name'=>'user1', 'age'=>'23', 'salary' => 1000], 2 => ['name'=>'user2', 'age'=>'24', 'salary' => 2000], 3 => ['name'=>'user3', 'age'=>'25', 'salary' => 3000], 4 => ['name'=>'user4', 'age'=>'26', 'salary' => 4000], 5 => ['name'=>'user5', 'age'=>'27', 'salary' => 5000], ]; ?>

Στον controller UserController, φτιάξτε μια δράση show, που θα εμφανίζει έναν χρήστη βάσει συγκεκριμένου id. Ας είναι προσβάσιμη από διεύθυνση της ακόλουθης μορφής: /user/:id/.

Στον controller UserController, φτιάξτε μια δράση info, που θα εμφανίζει το όνομα ή την ηλικία ενός συγκεκριμένου χρήστη. Ας είναι αυτή η δράση προσβάσιμη από διεύθυνση της ακόλουθης μορφής: /user/:id/:key/, όπου το key θα έχει τιμή 'name', 'age' ή 'salary'.

Στον controller UserController, φτιάξτε μια δράση all, που θα εμφανίζει τη λίστα όλων των χρηστών στην οθόνη. Ας είναι αυτή η δράση προσβάσιμη από διεύθυνση της ακόλουθης μορφής: /user/all/ (δεν υπάρχουν παράμετροι εδώ καθόλου).

Στον controller UserController, φτιάξτε μια δράση first, που θα εμφανίζει τη λίστα των N πρώτων χρηστών στην οθόνη. Ας είναι αυτή η δράση προσβάσιμη από διεύθυνση της ακόλουθης μορφής: /user/first/:n/, όπου στην παράμετρο θα είναι ο αριθμός των χρηστών που πρέπει να εμφανιστούν στην οθόνη.

Ελληνικά
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Χρησιμοποιούμε cookie για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη