Предаване на множество параметри към метода през URL
nencho
Публикувано на: 27-12-2011, 18:10
Име: nencho
1 Мнение
Регистриран на: 27-07-2011

Във урока за MVC беше показано как се достъпва Контролера и модела но не беше показано как се предават множество параметри.

Из взимам частта от URL след тази за метода и я разбивам на нов масив, след това я предавам на метода, но немога да намеря начин как да си подавам параметрите през URL понеже в базово съм го направил като масив.

Ако може малко код да напишеш

Аз го направих така



// Set the substring path as method properties
        if (isset($path[2])) {

            $this->url_sub_path = $path[2];

            $sub_path = explode('/', $this->url_sub_path);
            if (isset($sub_path)) {

                $this->model_properties = $sub_path;
            } else {
                $this->model_properties = null;
            }



А после при предаването правя така



$site_controler = $this->controler;
            include CONTROLER.$site_controler . '.php';
            
                $new_instans = new $site_controler();

        $site_method = $this->model;
        $new_instans->{$site_method}($this->model_properties);




но не откриам вариант
dobo
Публикувано на: 31-12-2011, 01:35
Име: Добрил Божилов
54 Мнения
Регистриран на: 09-02-2011

По видеото не бих могъл да говоря понеже съм забравил какво съм правил.

Все пак до колкото разбирам искаш да вземеш урл от сорта на:
test.com/controler/action/id/5/test/7

Където id = 5, test = 7.

Аз лично бих го направил така:

$partsCount = count($array) / 2;
$partsCount = round($partsCount);
for ($i = 0; $i < $partsCount; $i++) {
  $_GET[array_shift($array)] = array_shift($array);
}


Като в controllera или view-то, ще си достъпваш параметрите с get.

Така когато имаш test.com/controler/action?id=5&test=7 пак ще е същото.