Como enviar uma variável na ação(TAction) de um botão? Estou desenvolvendo um sistema de currículos, na página vagaDetalhesAdmin (Mostra os detalhes de uma vaga) existe um botão chamado "Editar Vaga" que direciona o usuário para uma nova página de edição, o que eu quero é enviar o "Id" da vaga via URL para que as informações da vaga sejam carregadas na página de edição. Tentei fazer assim: ...
LL
Como enviar uma variável na ação(TAction) de um botão?  
Estou desenvolvendo um sistema de currículos, na página vagaDetalhesAdmin (Mostra os detalhes de uma vaga) existe um botão chamado "Editar Vaga" que direciona o usuário para uma nova página de edição, o que eu quero é enviar o "Id" da vaga via URL para que as informações da vaga sejam carregadas na página de edição.

Tentei fazer assim:

<?php      $action_edit = new TAction(['CriarVagaAdmin', 'onEdit']);      $action_edit->setParameter('id', $this->vagaId);            $bt_editarVaga = TButton::create('bt_editarVaga', $action_edit, 'Editar Vaga', 'fa:edit green');?>


Mas não funciona!

Curso Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


Dominando o Adianti Framework Quero me inscrever agora!

Comentários (5)


NR

Rodando o seu código apresenta o erro abaixo:
"Método AdiantiControlTAction::__construct deve receber um parâmetro do tipo Callback
Verifique se a ação () existe"

Veja a função create da classe TButton:
<?phppublic static function create($name, $callback, $label, $image){        $button = new TButton( $name );        $button->setAction(new TAction( $callback ), $label);        $button->setImage( $image );        return $button;}?>

O segundo parâmetro deve ser um callback e não um TAction. Seu código ficaria assim:
<?php$bt_editarVaga = TButton::create('bt_editarVaga', ['CriarVagaAdmin', 'onEdit'], 'Editar Vaga', 'fa:edit green');$action_edit = $bt_editarVaga->getAction();$action_edit->setParameter('id', $this->vagaId);?>

LL

Show, vou testar. Me diga uma coisa nesse caso quero criar apenas um BOTÃO que da acesso a outra página, "CriarVagaAdmin" (e que execute o método "onEdit"), devo criar um formulário só para adicionar esse botão? Ou posso criar e usar ele sem usar um formulário?
LL

Outra dúvida que tenho é em relação a adicionar os campos num formulário, existem três funções, $form->add($campo), $form->addFiel($campo) e $form->setField($campo), qual a diferença?
NR

Os botões precisam estar vinculados a um form, pois o objetivo principal deles é "postar" as informações desse form.
Veja o link abaixo, tem outras opções que não exigem form:
adianti.com.br/framework_files/tutor/index.php?class=TextLinkView

Sobre as funções:
$form->add - não sei se já chegou a trabalhar diretamente com a classe TForm, ela é basicamente um container "form" que permite uma maior liberdade na criação de um formulário/interface. Essa função add adicionaria um componente/container na tela para visualização. Obs: pouco usado hoje em dia.

$form->addField - registra o campo informado por parâmetro como um campo do formulário.

$form->setFields - mesma coisa que a anterior, mas permite que seja informado um array de campos
LL

Muito Obrigado Nataniel!!!