'serials/<slug:\w*>' => 'serial/category/list',
'serials/<id>' => 'serial/category/oneserial',Yii::$app->urlManager->createUrl(['/serial/category/oneserial','id'=>$model->slug_serial]) //ссылка формируется такая /serials/serial-nazvanie-seriala
Yii::$app->urlManager->createUrl(['/serial/category/list','slug'=>$ct->slug_category])//ссылка формируется такая /serials/сategory'serials/<slug:\w*>' => 'serial/category/list',
'serials/<slug:[\w_\-]+>' => 'serial/category/list',
'serials/<id>' => 'serial/category/oneserial',
public function parseRequest($manager, $request)
{
$pathInfo = $request->getPathInfo();
if (preg_match('%^(\w+)(/(\w+))?$%', $pathInfo, $matches)) {if($path=='serial/category/oneserial'){
$exists = Serial::find()->where(['slug' => $id])->exists()
if($exists){
return ['serial/category/oneserial',params['id]];
}
}
if($path=='serial/category/list'){
$exists = Category::find()->where(['slug' => $slug])->exists()
if($exists){
return ['serial/category/list',params['slug]];
}
} preg_match('%^([\w-_]+)(/([\w-_]+))?$%', $pathInfo, $matches);if (($route === 'serial/category/oneserial' || $route === 'serial/category/list') && isset($params['slug'])) {
$slug = $params['slug'];
unset($params['slug']);
return 'serials/' . http_build_query($params);
}
return false;
public function createUrl($manager, $route, $params)
{
if ($route === 'serial/category/oneserial') {
if (isset($params['id'])) {
return 'serials/'.$params['id'];
}
}elseif($route === 'serial/category/list'){
if (isset($params['slug'])) {
return 'serials/'.$params['slug'];
}
}
return false; // данное правило не применимо
}
public function parseRequest($manager, $request)
{
$pathInfo = $request->getPathInfo();
if (preg_match('%^(\w+)(/(\w+))?$%', $pathInfo, $matches)) {
$path=$matches[0];
if($path=='serial/category/oneserial'){
$exists = Serial::find()->where(['slug_serial' => $matches[1]])->exists();
if($exists){
return ['serial/category/oneserial','id'=>$matches[1]];
}
}
if($path=='serial/category/list'){
$exists = Category::find()->where(['slug_category' => $matches[1]])->exists();
if($exists){
return ['serial/category/list','slug'=>$matches[1]];
}
}
}
return false; // данное правило не применимо
}
public function parseRequest($manager, $request)
{
$pathInfo = $request->getPathInfo();
if (preg_match('%^([\w-_]+)(/([\w-_]+))?$%', $pathInfo, $matches)) {
if ($matches[1] === 'serials') {
$exists = Serial::find()->where(['slug_serial' => $matches[3]])->exists();
if($exists){
return ['serial/category/oneserial', 'id'=>$matches[3]];
} else {
$exists = Category::find()->where(['slug_category' => $matches[3]])->exists();
if($exists){
return ['serial/category/list', 'slug'=>$matches[3]];
}
}
}
}
return false;
}