如何在Yii2中管理custome miltiple url?

如何在Yii2中管理custome miltiple url?,yii2,yii-url-manager,Yii2,Yii Url Manager,我正在尝试以不同的方式集成多个控制器/操作的url。假设我有两个控制器站点和产品控制器。我希望得到相应控制器的值,同时在url中传递不同的参数。我的意思是,当我传递slug参数时,它必须从站点/页面获取,当我传递category参数时,它必须从产品/视图获取 '<category:>/<id:>' => 'product/view', '<category:>' => 'product/view',

我正在尝试以不同的方式集成多个控制器/操作的url。假设我有两个控制器站点和产品控制器。我希望得到相应控制器的值,同时在url中传递不同的参数。我的意思是,当我传递slug参数时,它必须从站点/页面获取,当我传递category参数时,它必须从产品/视图获取

            '<category:>/<id:>' => 'product/view',
            '<category:>' => 'product/view',
            '<slug:>' => 'site/pages',
这是我的产品的createUrl参数

Yii::$app->urlManager->createUrl(['/product/view','category'=> 'handicraft-product', 'id'=> 'nepali-thanka-134']);
我只想像这样访问这个动作 或

站点控制器操作

public function actionView($category, $id= null)
{        
    $category = Category::findOne(['slug' => $category]);
    // rest of work
}
public function actionPages($slug)
    {        
        $model = $this->findByPageSlug($slug);
        return $this->render('pages',['model' => $model]);
    }
这是我的createUrl参数,用于站点的页面操作

Yii::$app->urlManager->createUrl(['/site/pages','slug' => 'terms-and-condition']);
这就是我想要访问这个动作的方式

我如何解决这个问题? 提前谢谢

2个选项:
1) 让URL有点不同。您可以这样定义它们:

'category/<category:>' => 'product/view',
'page/<slug:>' => 'site/pages',
“类别/”=>“产品/视图”,
“页面/”=>“站点/页面”,
根据你如何定义链接,它们可能会帮助你的SEO。
2) 创建自定义URL管理器规则以处理页面和类别的文本。请看这里:


在自定义规则中,您可以尝试查找类别URL,如果无法,则默认为页面URL。

URL必须稍有不同。Yii2怎么知道/bbbbbb应该转到产品/视图,/aaaaaa应该转到另一个页面?@Mihai P是的,我真的希望。。我已经更新了我的问题,等待你的意见。无论如何,提前谢谢。是的,选项1不在我的选择范围之内,我已经通过扩展yii\web\UrlRule和yii\web\UrlManager尝试了选项2。但是我不能得到;(.无论如何,我在等待期望的解决方案。直到我使用选项1:)。。。。