如何将回调中的return链接到Codeigniter Model return

时间:2018-07-24 06:05:31

标签: php codeigniter-3 web3

我可以得到模型的返回值吗?

在Codeigniter模型中使用Web3.php回调。

我尝试过,但是它是空的。

如何将回调中的return链接到CI Model return。

1.Model

use Web3\Web3;
use Web3\Contract;
use Web3\Providers\HttpProvider;
use Web3\RequestManagers\HttpRequestManager;

class Dapps_model extends CI_Model {

public function getItemFromDapps( $item_id ){
    $at     = "0xMYDAPPSADDRESS";
    $json   = file_get_contents( APPPATH . "/config/abi.json" , FALSE );
    $json   = json_decode( $json , TRUE );
    $abi    = json_encode( $json["abi"] );
    $provider = new HttpProvider( new HttpRequestManager('https://ropsten.infura.io/MYAPIKEY') );
    $contract = new Contract( $provider , $abi );
    $contract->at( $at );
    $contract->call( "getItemInfo" , $item_id , function( $err, $item ){
        if ( $err !== null ) {
            var_dump(  $err->getMessage() );
            exit;
        }
        // var_dump( $item ); Data exists.
        return $item;
    });
}

2.Controller

$item   = $this->Dapps_model->getItemFromDapps( 2 );
var_dump( $item ) is Null

添加

我能够在Controller上获得Model返回值。 在Oluwafemi的帮助下。 这是正确的用法吗?

$returnData = null;
$contract->call( "getItemInfo" , $item_id , function( $err, $item ) use ( &$returnData ){
    if ( $err !== null ) {
        var_dump(  $err->getMessage() );
        exit;
    }
    // var_dump( $item ); Data exists.
    //return $item;
    $returnData = $item;
});
return $returnData;

0 个答案:

没有答案