>

Fórum

Fórum da RL System, voltado para analistas, programadores etc. Tudo sobre linguagem de programação e desenvolvimento Full Stack: Banco de Dados, Android, C#, Java, .NET, PHP, Node, Javascript, TypeScript, Front, HTML e muito mais.



Action default MVC - PHP


Boa tarde!

Seguindo este modelo abaixo:
RewriteEngine On

RewriteRule ^([a-zA-Z0-9]+)$ index.php?Controller=$1&&Action=Index
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)$ index.php?Controller=$1&&Action=$2
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)$ index.php?Controller=$1&&Action=$2&Id=$3

Como eu defino qual será a minha action default ao abrir o projeto? Sabendo que quando hospedarmos o projeto vai abrir a index, como ele vai saber qual é a minha index, no caso eu criei um controller chamado inicio e uma action chamada index para abrir a primeira página, e agora? Por favor como eu faço?



4 Respostas


Douglas

Tente:

RewriteRule ^(. )$ index.php?Controller=NOMEDOCONTROLLER&&Action=Index

Ou via PHP que pode ser mais simples.

Lá no index.php, verifica se esta vazio a query String Controller e Action, assim, você direcionado pra que deseja




1.Estou com este problema tb, crei a default desse jeito e quando o não digito nada na url(http://localhost:8080/mvc) ele redireciona para http://localhost:8080/mvc/home/index, porém se eu apago o "index" e deixo só http://localhost:8080/mvc/home ele não encontra meu css, como resolvo isto? redireciona novamente pra ulr http://localhost:8080/mvc/home/index? se faço isso ele fala que a página tem um loop de redirecionamento e a página fica indisponível.

2. Como faço para criar uma página personalizada de erro 404? Creio que devo criar um controller pra isto tb, mas a dúvida está no index.php como verificar se realmente o controller não existe? uso !isset?. Abaixo segue o código da primeira questão.


if(isset($_GET["Controller"]))
{

include "Controller/".$_GET["Controller"]."Controller.php";

$class = $_GET["Controller"]."Controller";

eval("\$Controller = new $class();");


if(isset($_GET["Action"]))
{
eval("\$Controller->\$_GET['Action']();");
}
}



if (empty($_GET["Controller"]) && empty($_GET["Action"]) )
{
header("Location:http://localhost:8080/pim/home/index");
//include 'view/home/index.html';

}




Fernando

Você precisa abrir um tópico novo para sua dúvida.

Obrigado