Olá pessoal.
Estou com dúvidas para formatar minha url, para deixa-la amigável. Na minha tabela eu tenho um campo slug, que é unique (não podendo se repetir valor), fiz a chamada pelo controller, só que quando vou mostrar aparece o seguinte na barra de endereço: ...portalsite/meucontroller/produto?p=meu-produto-teste-2 , sendo que eu queria que aparecesse ...portalsite/meucontroller/produto/meu-produto-teste-2. Fiz parecido com o que gero no crud gii, onde ele passa o id como variável para a view, só que não deu certo.
Tem como é que posso fazer isso?
Métodos no controller:
Tentei fazer da seguinte forma na main.php
Estou com dúvidas para formatar minha url, para deixa-la amigável. Na minha tabela eu tenho um campo slug, que é unique (não podendo se repetir valor), fiz a chamada pelo controller, só que quando vou mostrar aparece o seguinte na barra de endereço: ...portalsite/meucontroller/produto?p=meu-produto-teste-2 , sendo que eu queria que aparecesse ...portalsite/meucontroller/produto/meu-produto-teste-2. Fiz parecido com o que gero no crud gii, onde ele passa o id como variável para a view, só que não deu certo.
Tem como é que posso fazer isso?
Métodos no controller:
public function actionProduto($p){ $this->render('produto',array( 'model'=>$this->loadSlugModel($p), )); } public function loadSlugModel($p) { $model=MERCext_Produtos::model()->find("slug = '".$p."'"); if($model===null) throw new CHttpException(404,'OPS! A requisição dessa página é inválida.'); return $model; }
Tentei fazer da seguinte forma na main.php
'urlManager'=>array( 'urlFormat'=>'path', 'showScriptName'=>false, 'rules'=>array( '<controller:\w+>/<id:\d+>'=>'<controller>/view', '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>', '<controller:\w+>/<action:\w+>/<p:\w+>'=>'<controller>/produto', '<controller:\w+>/<action:\w+>'=>'<controller>/<action>', ), ),