პარამეტრები მარშრუტებში MVC-ში PHP-ში
წინა გაკვეთილში ჩვენი მარშრუტები ფიქსირებულ მისამართებს ჰქონდათ. სინამდვილეში მარშრუტიზაციის მექანიზმი უფრო რთულია - შესაძლებელია ისე მოვიქცეთ, რომ გვერდის URI-ის ნაწილი მოხვდეს დასახელებულ პარამეტრებში, რომლებიც შემდგომ კონტროლერში იქნება ხელმისაწვდომი.
მაგალითად, დავუშვათ ჩვენი მისამართები ასე გამოიყურებოდეს:
/test/param1/param2/,
სადაც param1 და param2 - თვითნებური
სტრიქონები. ამ შემთხვევაში ჩვენ გვსურს, რომ ამ ტიპის მისამართები
მოხდეს კონტროლერის ერთი მოქმედებით.
ამისათვის საჭიროა პარამეტრის სახელი მივუთითოთ
და მის წინ ორწერტილი დავსვათ, ასე:
<?php
use \Core\Route;
return [
new Route('/test/:var1/:var2/', 'page', 'act'),
];
?>
ჩვენს შემთხვევაში გამოვა, რომ ფორმის ყველა მოთხოვნა
/test/პარამეტრი1/პარამეტრი2/
მოხვდება მოქმედებაზე act. ამასთან
ამ მოქმედების პირველ პარამეტრში
მოხვდება ასოციაციური მასივი პარამეტრებით:
ტექსტი, რომელიც იქნება პირველი პარამეტრის ადგილას,
მოხვდება მასივის ელემენტში გასაღებით 'var1',
ხოლო მეორე პარამეტრის ტექსტი - 'var2'-ში.
დავუშვათ, მაგალითად, მისამართების ველში აკრეფილია
შემდეგი: /test/eee/bbb/. მოდით
შევხედოთ, რა შეიცავს მოქმედების პირველი პარამეტრი:
<?php
namespace Project\Controllers;
use Core\Controller;
class PageController extends Controller
{
public function act($params)
{
var_dump($params); // ['var1' => 'eee', 'var2' => 'bbb']
}
}
?>
გააკეთეთ კონტროლერი NumController,
და მასში - მოქმედება sum. დაე, ეს
მოქმედება დაამუშავებს შემდეგი ფორმის მისამართებს:
/nums/:n1/:n2/:n3/, სადაც პარამეტრები
იქნება გარკვეული რიცხვები. გააკეთეთ ისე, რომ
ეკრანზე გამოიტანოს გადაცემული რიცხვების ჯამი.