MVC'de PHP'de Rotalarda Parametreler
Önceki derste rotalarımız sabit adreslere sahipti. Aslında yönlendirme mekanizması daha karmaşıktır - URI'nin bir kısmının, daha sonra denetleyicide erişilebilen adlandırılmış parametrelere düşmesi sağlanabilir.
Örneğin, adreslerimizin şu şekilde görünmesini
isteyelim: /test/param1/param2/,
burada param1 ve param2 - rastgele
dizelerdir. Aynı zamanda, bu tür adreslerin tek bir
kontrolör eylemi tarafından işlenmesini istiyoruz.
Bunun için bir parametre adı bulmalı ve önüne iki nokta
üst üste koymalısınız, işte şöyle:
<?php
use \Core\Route;
return [
new Route('/test/:var1/:var2/', 'page', 'act'),
];
?>
Bizim durumumuzda, /test/parametre1/parametre2/
şeklindeki tüm istekler act eylemine yönlendirilecektir.
Bu durumda, bu eylemin ilk parametresine parametrelerle
birlikte bir ilişkisel dizi gelecektir:
ilk parametrenin yerinde olan metin, 'var1'
anahtarlı dizi öğesine, ve ikinci parametrenin metni -
'var2' anahtarlı dizi öğesine düşecektir.
Örneğin, adres çubuğuna şu yazılmış olsun:
/test/eee/bbb/. Haydi, eylemin ilk parametresinde
ne olacağına bir bakalım:
<?php
namespace Project\Controllers;
use Core\Controller;
class PageController extends Controller
{
public function act($params)
{
var_dump($params); // ['var1' => 'eee', 'var2' => 'bbb']
}
}
?>
NumController kontrolörünü ve içinde
sum eylemini yapın. Bu eylemin şu türdeki
adresleri işlemesini sağlayın:
/nums/:n1/:n2/:n3/, burada parametreler
bazı sayılar olacaktır. Ekrana iletilen sayıların
toplamının çıkmasını sağlayın.