laravelbrasil / forum

Ama Laravel? Torne se um Jedi e Ajude outros Padawans
GNU General Public License v3.0
252 stars 13 forks source link

Dúvida em Rotas #129

Open crazyshock opened 7 years ago

crazyshock commented 7 years ago

E ai galera, tudo bem?

Antes de mais nada, quero pedir desculpa se a minha pergunta for muito idiota, ou muito iniciante. Porém fiz uma pesquisa e não consegui encontrar algo que me ajudasse na dúvida.

Eu tenho uma rota na seguinte situação:

Route::get('/resultado-busca/{codCidade?}/{cidade?}/{busca?}/{pagina?}/', array(
    'as' => 'resultado-busca',
    'uses' => 'HomeController@getBusca'
));

O problema é quando eu acesso o link usando uma barra no final e que não tenha parâmetros após esta barra, exemplo:

localhost/public/resultado-busca/

Acessando esse link acima eu sou jogado para a pasta raíz ficando

localhost/resultado-busca

Nesse caso da erro de pagina não encontrada, porque realmente não existe, a pergunta é como que faço para não ter esse problema? e caso a pessoa acesse o link acima ele continue na view q está e não sendo redirecionado para a raíz?

Obrigado galera!! <3

cagartner commented 7 years ago

Bom dia.

Primeiramente eu não aconselho a utilizar tanto parâmetros de rota assim, eu usaria parâmetros GET mesmo para casos de busca:

localhost/resultado-busca?codCidade=1&?cidade=Blumenau

Dessa forma não tem problema de reconhecimento de parametros.

Outra coisa que me parece é que seu vhost não está bem configurado, qual tipo de workflow está utilizando para desenvolver ai? Docker? Wamp? PHP, NGINX manualmente?

Porque a pasta public não deve aparecer na URL e dai já resolve o seu problema relatado :)

Abraços!

crazyshock commented 7 years ago

Entendi, porém a url amigável eu preciso usar, essa foi uma exigência do cliente. Nesse momento to usando a hospedagem da Locaweb, e como que o projeto está em fase de teste está dentro de uma pasta, posteriormente será jogada na raíz, então vai resolver o meu problema.

Porém essa dúvida minha existe uma solução (Além de usar a pasta raíz)? Ou isso é uma falha minha em não usar o método GET?

Obrigadão pela força @cagartner

ravanscafi commented 7 years ago

Cara, se você tá usando Apache, precisa configurar o mod_rewrite. No NGINX tem que acertar a conf também pra fazer o redir de location.

https://laravel.com/docs/5.4/installation#pretty-urls