CM
Como tratar atributos como UF, onde a chave seria um char?
Fechado
Olá,
Como tratar campos onde o usuário não informaria o ID mas um código, um exemplo seria um campo do tipo UF. O usuário conhece por convenção as siglas dos estados. Neste caso como trataria isso nos relacionamentos do TRecord e de que forma apresentaria isso ao usuário em um componente de tela.
Valeu.
Carlos H. Marian
Como tratar campos onde o usuário não informaria o ID mas um código, um exemplo seria um campo do tipo UF. O usuário conhece por convenção as siglas dos estados. Neste caso como trataria isso nos relacionamentos do TRecord e de que forma apresentaria isso ao usuário em um componente de tela.
Valeu.
Carlos H. Marian
O conceito é o mesmo.
const TABLENAME = 'estados';
const PRIMARYKEY= 'uf';
// const IDPOLICY = 'max'; // {max, serial}
Quando é char eu não uso o IDPOLICY o resto é identico.
Carlos Marian, lamento, mas não é assim que funciona o Framework. Você pode até fazer o que o Felipe favor, mas vai precisar sobrescrever alguns métodos da classe TRecord. Só te digo uma coisa, leia sobre padrão de projeto Identity Field, pois é esse design pattern que o framework utiliza.
Abraço!
não sria mais viavel deixar o id para usar se nescessario, e criar um campo uf usando unique key no caso do mysql
eu e minhas gambiarras rsrs
Como o Alexandre (Progs) e o Guilherme falaram, é uma boa prática sempre ter um ID incremental, e ter este outro atributo como unique index. Outro exemplo seria o CPF, o CPF é um atributo como qualquer outro, mas um unique index, jamais um primary key. Conceitualmente um PK não deveria ser um atributo com significado no mundo real, sobre o qual não temos controle ;-) É isso que nos diz Fowler.
Abraços!
https://www.youtube.com/watch?v=ccnKCrhB1io&t=320s
Criando um cadastro no Adianti Framework
Não consigo decifrar este avisos e erros:
Warning: call_user_func_array() expects parameter 1 to be a valid callback, class 'AdiantiWidgetBaseTElement' does not have a method 'addItens' in C:wamp64wwwStudioAulalibadiantiwidgetformTField.php on line 101
Warning: call_user_func_array() expects parameter 1 to be a valid callback, class 'AdiantiWidgetBaseTElement' does not have a method 'addItens' in C:wamp64wwwStudioAulalibadiantiwidgetformTField.php on line 101
Notice: Undefined variable: _lcto in C:wamp64wwwStudioAulaappcontrolFilmeForm.class.php on line 32
Fatal error: Uncaught TypeError: Argument 2 passed to AdiantiWidgetWrapperTQuickForm::addQuickField() must implement interface AdiantiWidgetFormAdiantiWidgetInterface, null given, called in C:wamp64wwwStudioAulaappcontrolFilmeForm.class.php on line 32 and defined in C:wamp64wwwStudioAulalibadiantiwidgetwrapperTQuickForm.php:167 Stack trace: #0 C:wamp64wwwStudioAulaappcontrolFilmeForm.class.php(32): AdiantiWidgetWrapperTQuickForm->addQuickField('Lancamento', NULL, 100) #1 C:wamp64wwwStudioAulalibadianticoreAdiantiCoreApplication.php(60): FilmeForm->__construct(Array) #2 C:wamp64wwwStudioAulaengine.php(14): AdiantiCoreAdiantiCoreApplication::run(true) #3 C:wamp64wwwStudioAulaengine.php(19): TApplication::run(true) #4 {main} thrown in C:wamp64wwwStudioAulalibadiantiwidgetwrapperTQuickForm.php on line 167
Como resolver este erro:
O código copiado da aula no link acima.
Parse error: parse error, expecting `T_VARIABLE' in C:wamp64wwwStudioAulaappmodelFilme.class.php on line 8
Errors parsing C:wamp64wwwStudioAulaappmodelFilme.class.php
Fico no aguardo de quem posa me ajudar, pois, minha experiencia com o adianti pro é pouca pois acabei de adquirir.
Vou ver se consigo entender com a ajuda do livro. Mais aguardo que eu possa obter ajuda aqui.