PHP MVC - Открыть специальную вкладку c в формате URL - PullRequest
0 голосов
/ 21 июня 2020

Я использую PHP MVC, и я написал ниже код для создания URL-адреса и загрузки основного контроллера. Мой формат URL такой - «/ controller / method / params». Теперь у меня возникла проблема, если я попытаюсь открыть определенную c вкладку Nav, передав #id вкладки в URL-адресе, она игнорирует эту часть. Я хочу, чтобы, если я передаю идентификатор вкладки, она должна открывать эту активную вкладку. Любая помощь будет принята с благодарностью.

 <?php
  /*
   * App Core Class
   * Creates URL & loads core controller
   * URL FORMAT - /controller/method/params
   */

 class Core
 {  
    protected $currentController = 'Pages';
    protected $currentMethod= 'index';
    protected $params = [];

    public function __construct()
     {
       //print_r($this->getUrl());
       $url = $this->getUrl();

       if (empty($url) || !in_array("user_images", $url)){


       //Look in controller for first value
       if (file_exists('../app/controllers/'. ucwords($url[0]) . '.php' )) {
            //if exists, set as controller
            $this->currentController = ucwords($url[0]);
            //Unset 0 Index
            unset($url[0]);

          }



          require_once '../app/controllers/' . $this->currentController . '.php';
         
          //instantiate controller class
          $this->currentController = new $this->currentController;

          //check for second part of the url

          if (isset($url[1])) {
            if (method_exists($this->currentController, $url[1])) {
                $this->currentMethod = $url[1];
                unset($url[1]);
            }
          }

          //echo $this->currentMethod;
          // Get Params
          $this->params = $url ? array_values($url) : [];

          //call a callback with array of params

          call_user_func_array([$this->currentController, $this->currentMethod],
            $this->params);

       }
       



     }

    public function getUrl(){
        if (isset($_GET['url'])) {
            $url = rtrim($_GET['url'],'/');
            $url = filter_var($url, FILTER_SANITIZE_URL);
            $url = explode('/',$url);
            return $url;
        }
    }
     
     
 }
  

Какие изменения я могу сделать в методе getUrl? введите описание изображения здесь

1 Ответ

0 голосов
/ 21 июня 2020

# используется только на стороне клиента, в браузере, как точка привязки к элементу на странице. Кроме того, его можно использовать в контексте JavaScript для работы с вкладками и т.д. c.

Он не обрабатывается на стороне сервера, вам нужно просто отправить параметры: ?tab=id

Затем вы можете получить доступ к параметру tab в сценарии на стороне сервера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...