Estou com um pequeno problema, no meu site gostaria que a minha url ficasse www.exemplo.com.br/pagina/nome-do-produto/ alguem poderia me ajudar neste caso, sei que tem que usar o slug, mas eu nao estou conseguindo.
Uma outra duvida é as minha views esta dentro da pasta site, e para carregar cada pagina eu tenho que colocar o link site/pagina entao na url fica www.exemplo.com.br/site/pagina/nome-do-produto/, entao como faz para tirar da url o diretorio site, tentei colocar no root da pasta views mas retorna erro, tem alguma configuraçao que poderia fazer?
No caso, site é seu controller, pra ficar com outro nome, vc tem que criar u outro controller.
Cria um crud como esplicado aquie veja o código que o Yii gerou automaticamente que vc vai ter uma noção bem melhor, ou vc pode seguir o tutorial de criação da aplicação de blogdo exemplo.
O que ele quer, é manter um só controller e chamar uma determinda action de um determinado controller sem ter que explicitamente colocar o nome do controller na url. Eu até entendi, mas não achei nenhuma forma de fazer isso …
Talvez sobreescrevendo umas classes no core, mas, como nosso amigo Newerton disse, esse não é o comportamento padrão do fw.
Eu nunca usei, mas talvez ajude a fazer o que vc precisa. Basicamente vc vai criar controllers "virtuais" apontando pro mesmo controller que vc precisa, deixando como se fosse vários controllers com o mesmo nome.
Apenas, criei um arquivo .htaccess dentro da pasta do meu site, com o seguinte conteudo.
RewriteEngine on
# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# otherwise forward it to index.php
RewriteRule . index.php
'urlManager'=>array(
'urlFormat'=>'path',
'showScriptName'=>false, //RETIRA O index.php, precisa ter o mod_rewrite habilitado no Apache e o .htaccess
),