Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Joob

blocktrail - criando vários links txid

Recommended Posts

Boas Malta,

Tenho o seguinte código

      @if($ver->status=='cancelado')
         <div class="btn btn-danger">{{$ver->status}}</div>
       @else
         <a href="https://www.blocktrail.com/BTC/tx/{{$ver->hash}}" target="_blank" class="btn btn-success">Ver</a>
      @endif

Mas tenho um problema, que ele cria o Link do TXID, mas sempre que depois faço a mesma função para apareceu este link, ele básicamento é substituido pela ultima função..

Exemplo..

Clico na Função X

Ele cria a Função Y e gere um link TXID

Vou de seguida, clico na Função X (novamente)

Ele cria a Função Y e gere outro link TXID

Mas a partir do momento em que eu clico na Função X pela segunda, terceira, quarta x, etc..

Ele cria a Função Y, mas substitui o primeiro Link da primeira função, em x de acrescentar o segundo link por baixo do primeiro link e assim sucessivamente.

- LINK 1

- LINK 2

- LINK 3

etc....

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando você clica na função x ele recarrega a página ou é um evento JS que cria ativa o link?

pelo menos para mim, não ficou claro como você está tentando.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ele recarrega a página para um outro link, mas é tipo instantaneo.. no fundo vai.te dar o "wallet" ..

Imagina.. compro 0.1 e ao comprar, ele gera o wallet, após o pagamento ele é confirmado tudo ok, ele gera o txid (link da transacção) em que depois fica como validado (isto na primeira linha). O problema é, quando faço uma nova compra seja de que valor for, ele em vez de ficar na segunda linha não, ele fica como cancelado, mas fica validado na primeira linha, e deveria ficar era na segunda linha, porque ele acaba por substituir o txid do primeiro pagamento.

Estou usando esta função

$user = Wallets::where('wallet', $wallet)->get();

foreach($user as $usuario){

                        $id = $usuario->id_user;

                        $invest = Investimento::where('wallet', $wallet)->first();
                        $invest->id_user = $id;
                        $invest->wallet = $wallet;
                        $invest->hash = $txData['data']['hash'];
                        $invest->deposito = BlocktrailSDK::toBtc($txData['data']['estimated_value']);
                        $invest->status = 'pendente';
                        $invest->save();
                    }

Ou seja, penso eu que seja aqui, que ele deveria assumir que quando se faz outros pagamentos após o primeiro pagamento, deveriam ficar validados na linhas seguintes e não estar sempre a trocar o txid da primeira linha.

Ele desta forma penso eu que esteja certo, só se falta acrescentar algo mais.

Não sei se me fiz entender..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia,

Se eu entendi direito essa segunda explicação:

$invest = Investimento::where('wallet', $wallet)->first();

Quando você recupera um registro do banco, e salva, o framework vai assumir update.

$invest->save();

se você pretende insert (inserir nova linha) precisa criar o objeto em vez de recuperá-lo do banco.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boas, obrigado pela resposta.

Exacto, entendi a tua lógica .. porque se eu retirar o save, ele não irá salvar, logo não irá bombar.. ele faz isso mesmo, assume como um update e está sempre a fazer update do respectivo valor.

Será que conseguirias deixar a dica ?

Abraço ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está usando o Zend, certo?

nesse caso você deve trocar essa linha:

$invest = Investimento::where('wallet', $wallet)->first();

por:

$invest  = new MyTableGateway();//MyTableGateway é a sua classe de dados "Investimento"

Outra forma (Não estou certo se funciona) seria trocar o save() por insert()

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou usando "Laravel" ..

Neste caso não irá dar.. porque essa opção que me deste será só para o "Zend"..

Vou testar à mesma.. ;)

Já testei com o insert() e não resultou..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma rápida pesquisa na internet encontrei isso:

$invest = Investimento::create(array('id_user' => $id, 'wallet' => $wallet));

A lógica é a seguinte, se você buscar um registro no banco e mandar salvar, ele vai atualizar, então para criar um novo registro, você deve instanciar o repositório, passar o valor e ai sim chamar o método save()

Compartilhar este post


Link para o post
Compartilhar em outros sites

dessa forma não funcionou (com o create).. ele não chega a processar..

mas desta forma já deu

$invest = Investimento::where(array('id_user' => $id, 'wallet' => $wallet));

mas acontece ainda o mesmo..

Ele substitui sempre pelo primeiro pagamento e o resto dos pagamentos fica cancelado..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que o problema se encontra aqui

$invest->hash = $txData['data']['hash'];

porque se eu utilizar o deposito ou o wallet, neste caso para aparecer (no html), ele funciona com as indicações do deposito, wallet etc.. com o hash é que não..

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.