PHP MVC маршрут не найден

146
03 декабря 2019, 04:10
<?php
namespace application\core;
class Router {
    protected $router = [];
    protected $params = [];
    public function __construct() {
        $arr = require 'application/config/routes.php';
        foreach ($arr as $key => $val) {
            $this->add($key, $val);
        }
    }
    public function add($route, $params) {
        $route = '#^'.$route.'$#';
        $this->routes[$route] = $params;
    }
    public function match() {
        $url = trim($_SERVER['REQUEST_URI'], '/');
        foreach ($this->routes as $route => $params) {
            if (preg_match($route, $url, $matches)) {
                $this->params = $params;
                return true;
            }
        }
        return false;
    }
    public function run() {
        if ($this->match()) {
            $path = 'application\controllers\\'.ucfirst($this->params['controller']).'Controller';
            if (class_exists($path)) {
                $action = $this->params['action'].'Action';
                if (method_exists($path, $action)) {
                    $controller = new $path;
                    $controller->$action();
                } else {
                    echo 'Не найден екшен: '.$action;
                }
            } else {
                echo 'Не найден контроллер: '.$path;
            }
            } else {
                echo 'Маршрут не найден';
            }
    }
}

Не могу понять что у меня не так , ну и соответственно код неработающий.
if (preg_match($route, $url, $matches)) - что то здесь не так.
Помогите пожалуйста.

READ ALSO
Не могу понять MVC в PHP

Не могу понять MVC в PHP

На просторах сети, спустя очень большой объём времени, мне удалось найти самый простой пример шаблона проектирования MVC в PHPНо я никак не могу...

113
Не работает belongsToMany (Many to Many)

Не работает belongsToMany (Many to Many)

Есть pivot-таблица championship_user:

114
Как задать значения полей по умолчанию в модели eloquent?

Как задать значения полей по умолчанию в модели eloquent?

Есть ли возможность прямо внутри модели App\Post задать значения по умолчанию, например для поля user_id типа:

136