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;
}
Então, o ‘w’ pelo teste que fiz pega todas as letras mais alguns caracteres como underline, mais não me lembro de testar com ele com traços ou outros caracteres.