Creates a URL according to the given route and parameters.
public createUrl ( |
||
$manager | the URL manager | |
$route | string | the route. It should not have slashes at the beginning or the end. |
$params | array | the parameters |
return | string | boolean | the created URL, or `false` if this rule cannot be used for creating this URL. |
/** * @param \yii\web\UrlManager $manager * @param string $route * @param array $params * @return bool|string */ public function createUrl($manager, $route, $params) { if (!isset($params[$this->languageParam]) || !$params[$this->languageParam]) { $params[$this->languageParam] = I18N::getCurrentLanguageSlug(); } return parent::createUrl($manager, $route, $params); }
/** * @inheritdoc */ public function createUrl($manager, $route, $params) { if (!isset($params[$this->languageParam])) { $params[$this->languageParam] = $this->getLanguage(); } return parent::createUrl($manager, $route, $params); }
public function actionIndex() { echo "*************************************************"; $rule = new UrlRule(['pattern' => 'debug/<controller:[\\w\\-]+>/<action:[\\w\\-]+>/<id:\\d+>', 'route' => 'debug/<controller>/<action>', 'defaults' => ['id' => 10, 'action' => 'method']]); $rule->createUrl(Yii::$app->urlManager, 'debug/test/index', []); // $urlManager = Yii::$app->urlManager; // var_dump($urlManager->rules); }
/** * Replace dashboard routes in url * * @param object $manager * @param string $route * @param array $params * @return bool */ public function createUrl($manager, $route, $params) { $customRoute = $this->prepareRoute($route); if (Yii::$app->getModule($this->dashboardId)->config->isDashboardRoute($customRoute) && Yii::$app->getModule($this->dashboardId)->config->isDashboardCall()) { $extRoute = Yii::$app->getModule($this->dashboardId)->config->getRoute($customRoute); return parent::createUrl($manager, $this->dashboardId . '/default/index', array_merge($params, $this->paramzRoute($extRoute))); } return parent::createUrl($manager, $route, $params); }
/** * @inheritdoc */ public function createUrl($manager, $route, $params) { $defaultRoute = $this->route; foreach ($this->resolvers as $resolver) { $this->route = $resolver->getRoute(); if ($url = parent::createUrl($manager, $route, $params)) { return $url; } } $this->route = $defaultRoute; return parent::createUrl($manager, $route, $params); }
public function testCreateUrl() { $manager = new UrlManager(['cache' => null]); $suites = $this->getTestsForCreateUrl(); foreach ($suites as $i => $suite) { list($name, $config, $tests) = $suite; $rule = new UrlRule($config); foreach ($tests as $j => $test) { list($route, $params, $expected) = $test; $url = $rule->createUrl($manager, $route, $params); $this->assertEquals($expected, $url, "Test#{$i}-{$j}: {$name}"); } } }
public function createUrl($manager, $route, $params) { if ($route == $this->route && isset($params['id']) && ($model = Categories::findOne($params['id'])) && $model->alias) { unset($params['id']); //preg_match($this->pattern, \Yii::$app->request->getPathInfo(), $matches); //$matches = $this->substitutePlaceholderNames($matches); //var_dump($matches); if ($model->parent) { return 'category/' . $model->parent->alias . '/' . $model->alias . (!empty($params) ? '?' . http_build_query($params) : ''); } return 'category/' . $model->alias . (!empty($params) ? '?' . http_build_query($params) : ''); } return parent::createUrl($manager, $route, $params); }
public function createUrl($manager, $route, $params) { if (isset($params[$this->paramName]) && !is_array($params[$this->paramName])) { $params[$this->paramName] = $this->urlDecode($params[$this->paramName]); foreach ($params[$this->paramName] as $key => &$value) { $value = Json::decode($value); } } foreach ($params as $key => $param) { if (in_array($key, $this->autoEncodeParams) && !is_null($param)) { $params[$this->paramName][$key] = $param; ArrayHelper::remove($params, $key); } } if (isset($params[$this->paramName]) && is_array($params[$this->paramName])) { foreach ($params[$this->paramName] as $key => &$value) { $value = Json::encode($value); } $params[$this->paramName] = $this->urlEncode($params[$this->paramName]); } return parent::createUrl($manager, $route, $params); }
public function createUrl($manager, $route, $params) { $request = Yii::$app->getRequest(); if (!array_key_exists('modelId', $params)) { $modelId = $request->getQueryParam('modelId'); if ($modelId) { $params['modelId'] = $modelId; } } if (strncmp($route, 'mozayka/crud/', 13) == 0) { $controller = Yii::$app->controller; if ($controller->id == 'crud') { if ($controller->action->id == 'list') { if ($route != 'mozayka/crud/list') { $params['uniqId'] = uniqid(); } } else { $uniqId = $request->getQueryParam('uniqId'); if ($uniqId) { $session = Yii::$app->getSession(); if (!$session->has($uniqId)) { $session->set($uniqId, $request->getReferrer()); } if ($route != 'mozayka/crud/list') { $params['uniqId'] = $uniqId; } else { $referrer = $session->get($uniqId); if ($referrer) { return $referrer; } } } } } } return parent::createUrl($manager, $route, $params); }
/** * @inheritdoc */ public function createUrl($manager, $route, $params) { $params = $this->checkLanguageParams($params); return parent::createUrl($manager, $route, $params); }