amnah\yii2\user\Module::createController PHP Method

createController() public method

This is needed because of the way we map actions to "user/default/". We can't use module bootstrapping because that doesn't work when urlManager.enablePrettyUrl = false. Additionally, this requires one less step during installation
public createController ( $route )
    public function createController($route)
    {
        // check valid routes
        $validRoutes = [$this->defaultRoute, "admin", "copy", "auth"];
        $isValidRoute = false;
        foreach ($validRoutes as $validRoute) {
            if (strpos($route, $validRoute) === 0) {
                $isValidRoute = true;
                break;
            }
        }
        return (empty($route) or $isValidRoute) ? parent::createController($route) : parent::createController("{$this->defaultRoute}/{$route}");
    }

Usage Example

Ejemplo n.º 1
0
 /**
  * Modify createController() to handle routes in the default controller
  *
  * This is a temporary hack until they add in url management via modules
  *
  * @link https://github.com/yiisoft/yii2/issues/810
  * @link http://www.yiiframework.com/forum/index.php/topic/21884-module-and-url-management/
  *
  * "user", "user/default", "user/admin", and "user/copy" work like normal
  * any other "user/xxx" gets changed to "user/default/xxx"
  *
  * @inheritdoc
  */
 public function createController($route)
 {
     // check valid routes
     $validRoutes = [$this->defaultRoute, "admin", "copy", "auth"];
     $isValidRoute = false;
     foreach ($validRoutes as $validRoute) {
         if (strpos($route, $validRoute) === 0) {
             $isValidRoute = true;
             break;
         }
     }
     return (empty($route) or $isValidRoute) ? parent::createController($route) : parent::createController("{$this->defaultRoute}/{$route}");
 }