Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
ola a todos
antes de mais nada, sei muito pouco sobre MVC, então se escrevi alguma coisa errada, conceitos, etc, por favor me orientem...
sobre MVC, o model é que fica responsável pelos dados, correto?
então, quando eu quiser mostrar, por exemplo uma relação de nomes, em forma de tabela, eu faria o seguinte:
o controller com autenticação
o model faria as sql
e o view me mostraria os dados
+ ou - isso, certo???
agora, a validação dos dados de entrada, fica com o controller ou com o model???
e na hora que os dados retornarem, quem desenha a tabela?? No model eu dou um "while" com "echo" e monto a tabela, ou passo para o view fazer isso???
é + ou - isso pessoal são essas minhas dúvidas a principio.
ok
obrigado pela ajuda
agora só me orienta uma coisinha, se eu entendi bem:
no exemplo q citei
o usuário clica no link para entrar na pagina que vai fazer a busca
no caso da autenticação, para ver se um usuário está logado
então eu vejo se existe uma SESSION, e qual o id do usuário
isso fica no controller, não é???
ai se a SESSION existir, ver se o usuário esta no banco, é com o model, certo?
mas tudo isso eu tenho q verificar no view, na hora que o usuário entrar nela, não é?
no view eu faria, por exemplo:
// alguns códigos aqui
$aut = new Autenticacao();
$aut->autenticaUser();
// restante dos códigos aqui
ai, lá no controller eu faria +- isso
// aqui, já dentro da classe Autenticacao, no metodo autenticaUser()
if ( ***ALGUMA VALIDAÇÃO DE USUÁRIO QUE EU FIZ RETORNOU FALSE*** ){
session_destroy();
header( "Location: blablabla" );
exit;
}
// restante da classe Autenticacao
a ideia é + ou - essa???
obrigado
o usuário clica no link para entrar na pagina que vai fazer a busca
no caso da autenticação, para ver se um usuário está logado
então eu vejo se existe uma SESSION, e qual o id do usuário
isso fica no controller, não é???
ai se a SESSION existir, ver se o usuário esta no banco, é com o model, certo?
mas tudo isso eu tenho q verificar no view, na hora que o usuário entrar nela, não é?
vamos colocar "ilustrado"
usuario clica no link -> o link chama o controller -> o controller redireciona para o form de login , que fica na view -> a view do login recebe os dados do usuario e manda pro model -> o model valida dos dados, caso positivo joga pra session e o controller redireciona para a pagina privada
Algo do tipo
<?php
class UserView {
public function displayStatus ( $status ) {
if ( $status === true ) {
echo 'Autenticado com sucesso !' ;
} else {
echo 'Falha na autenticação, tente novamente.' ;
}
}
}
class UserModel {
public function authenticate ( ) {
$login = 123 ; // $_POST [ 'login' ]
$senha = 456 ; // $_POST [ 'senha' ]
try {
$stmt = $db->prepare ( 'SELECT * FROM `users` WHERE `login` = ? AND `senha` = ?' ) ;
$stmt->bindValue ( 1 , $login , PDO::PARAM_STR ) ;
$stmt->bindValue ( 2 , $senha , PDO::PARAM_STR ) ;
$stmt->execute ( ) ;
return $stmt->rowCount ( ) > 0 || false ;
} catch ( PDOException $e ) {
// ...
}
}
}
class UserController {
public function authenticate ( ) {
$model = new UserModel ( ) ;
$status = $model->authenticate ( ) ;
$view = new UserView ( ) ;
$view->displayStatus ( $status ) ;
}
public function handle ( ) {
if ( isset ( $_GET [ 'action' ] ) ) {
switch ( trim ( $_GET [ 'action' ] ) ) {
case 'login':
case 'authenticate':
$this->authenticate ( ) ;
break;
}
}
}
}
$user = new UserController ( ) ;
$user->handle ( ) ;
e o view me mostraria os dados
o controller controlas as requisicoes, as chamadas as paginas, autenticacao ficaria com o model, ja q ele trabalha com sql, e portanto, iria ao banco verificar se determinado usuario existe...
fica com o model ou o view, depende de sua estrutura, você pode validar os dados com javascript, ou com o php, caso seja com javascript , fica a cargo do view, caso o php fica a caso do model...
a pergunta se responde, se desenha, mostra, se mostra, kem eh? a view...