Eu levei cinco horas para montar o código a seguir. Eu recebi várias mensagens de erro, muitos eram familiares mas não sabia do que se tratava. O mais enigmático é que eu não podia usar a variável $_SESSION junto com o motor de banco de dados. Depois de várias tentativas e erros, acabei descobrindo que todos os erros eram gramaticais, usei o recurso do PHP aonde não devia.
O grande problema do MVC é criar um controlador para cada tabela do banco de dados. Isso não é fácil, principalmente quando eu preciso de uma informação numa tabela que está disponível em outra tabela. Para criar uma ponte entre os controladores, eu usei a variável $_SESSION, assim:
<?php
session_start();classProduto{publicfunction incluir(){
$lcto=$_SESSION['lcto'];
$codprod=1;$qt=1;$subtotal=1;
$pdo=new PDO("mysql:host=localhost;dbname=laravel","root","");
$pdo->query("insert into tbhistprod (lcto,codprod,qt,subtotal)
values ($lcto,$codprod,$qt,$subtotal)");}}classDiario{publicfunction incluir(){
$contad=123;$contac=121;$valor=10;$historico='Compra de um repolho na quitanda';
$pdo=new PDO("mysql:host=localhost;dbname=laravel","root","");
$pdo->query("insert into tbdiario (contad,contac,valor,historico) values
($contad,$contac,$valor,'$historico')");
$_SESSION['lcto']=$pdo->lastInsertId();
$produto=newProduto();
$produto->incluir();}}
$diario=newDiario();
$diario->incluir();
Olhando o código, o mais sensato era colocar o número do lançamento como parâmetro da função e não como variável global $_SESSION. O problema são os formulários, um vai pegar as contas, o outro vai pegar os produtos, e depois de várias submissões, tudo o que estava no caminho se perde no Vale das Sombras.
Outra coisa bacana que aprendi com o MVC é a barra de endereço do navegador. Lá aparece o nome do controlador. No caso de uma submissão de um formulário, o PHP vai carregar o controlador que estiver na barra de endereço, assim decidi não usar a propriedade action do <form>, mas sim preparar o controlador para receber a submissão.
Pergunta
Frank K Hosaka
Eu levei cinco horas para montar o código a seguir. Eu recebi várias mensagens de erro, muitos eram familiares mas não sabia do que se tratava. O mais enigmático é que eu não podia usar a variável $_SESSION junto com o motor de banco de dados. Depois de várias tentativas e erros, acabei descobrindo que todos os erros eram gramaticais, usei o recurso do PHP aonde não devia.
O grande problema do MVC é criar um controlador para cada tabela do banco de dados. Isso não é fácil, principalmente quando eu preciso de uma informação numa tabela que está disponível em outra tabela. Para criar uma ponte entre os controladores, eu usei a variável $_SESSION, assim:
Olhando o código, o mais sensato era colocar o número do lançamento como parâmetro da função e não como variável global $_SESSION. O problema são os formulários, um vai pegar as contas, o outro vai pegar os produtos, e depois de várias submissões, tudo o que estava no caminho se perde no Vale das Sombras.
Outra coisa bacana que aprendi com o MVC é a barra de endereço do navegador. Lá aparece o nome do controlador. No caso de uma submissão de um formulário, o PHP vai carregar o controlador que estiver na barra de endereço, assim decidi não usar a propriedade action do <form>, mas sim preparar o controlador para receber a submissão.
Editado por Frank K HosakaLink para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.