Documentation Index
Fetch the complete documentation index at: https://docs-fw.madbuilder.com.br/llms.txt
Use this file to discover all available pages before exploring further.
Podemos realizar a exclusão de objetos diretamente de duas maneiras:
- Instanciar o objeto a partir do ID e usar a função
delete()
- Instanciar a classe e executar a função
delete(ID)
As duas maneiras irão gerar a mesma instrução SQL. A diferença é que a primeira é executada em cima de um objeto e a segunda em uma classe, por isso ela precisa de um parâmetro, neste caso a chave primária do registro (ID). Vamos ver alguns exemplos:
Este é o primeiro caso, quando usamos a função delete() em um objeto.
TTransaction::open('exemplos');
$funcionario = new Funcionario(1);
$funcionario->delete();
TTransaction::close();
O SQL gerado é:
SELECT * FROM funcionario WHERE (id = 1)
DELETE FROM funcionario WHERE (id = '1')
Agora vamos ver o segundo caso.
TTransaction::open('exemplos');
$funcionario = new Funcionario;
$funcionario->delete(1);
TTransaction::close();
O SQL gerado é:
DELETE FROM funcionario WHERE (id = 1)
5.1. Qual dos métodos de exclusão devo usar?
A resposta direta é: depende. Cada caso é um caso, e podemos ver que o primeiro caso realizou uma consulta a mais no BD. Se o objetivo é apenas deletar um objeto, a segunda maneira é mais eficiente, mas existem casos em que será necessário testar algo do objeto para realmente excluir. Portanto, o desenvolvedor deve analisar a melhor maneira de implementar a exclusão de objetos.
Aqui falamos apenas da exclusão individual de objetos, mas também existe a exclusão de coleções, que será abordada mais à frente.